public class BrokersMetadataSnapshot extends Object implements kafka.common.AliveBrokersMetadata
AliveBrokersSnapshot
and BrokerRegistration
,
exposing broker metadata information that both classes offer - like replica exclusions, listeners, epochs.
As SBC can run in both ZK and KRaft mode, this class helps bridge (abstract) the gap between the different ways SBC gets metadata from the controller.Modifier and Type | Method and Description |
---|---|
Set<Integer> |
aliveBrokers()
Return the unfenced/alive brokers.
|
Set<Integer> |
demotedBrokers()
Returns the demoted brokers in the cluster.
|
Optional<org.apache.kafka.common.Endpoint> |
endpointFor(org.apache.kafka.common.network.ListenerName listenerName) |
Optional<Long> |
epochFor(int brokerId)
Returns the broker epoch for the broker with ID
brokerId . |
boolean |
isEmpty() |
static BrokersMetadataSnapshot |
of(kafka.common.AliveBrokersSnapshot aliveBrokersSnapshot)
Build a
BrokersMetadataSnapshot from a given AliveBrokersSnapshot . |
static BrokersMetadataSnapshot |
of(Map<Integer,org.apache.kafka.metadata.BrokerRegistration> brokerRegistrations,
Set<Integer> replicaExclusions)
Build a
BrokersMetadataSnapshot from a given map of registered brokers and set of excluded brokers. |
Set<Integer> |
replicaExclusions()
Returns the active broker replica placement exclusions in the cluster
|
public static BrokersMetadataSnapshot of(kafka.common.AliveBrokersSnapshot aliveBrokersSnapshot)
BrokersMetadataSnapshot
from a given AliveBrokersSnapshot
. Used in ZK-mode.public static BrokersMetadataSnapshot of(Map<Integer,org.apache.kafka.metadata.BrokerRegistration> brokerRegistrations, Set<Integer> replicaExclusions)
BrokersMetadataSnapshot
from a given map of registered brokers and set of excluded brokers. Used in KRaft-mode.brokerRegistrations
- the registered brokers in the clusterreplicaExclusions
- the broker ids that are excluded for replica placementpublic Set<Integer> aliveBrokers()
aliveBrokers
in interface kafka.common.AliveBrokersMetadata
public Set<Integer> replicaExclusions()
replicaExclusions
in interface kafka.common.AliveBrokersMetadata
public Set<Integer> demotedBrokers()
demotedBrokers
in interface kafka.common.AliveBrokersMetadata
public Optional<Long> epochFor(int brokerId)
brokerId
. Empty if no such broker exists.epochFor
in interface kafka.common.AliveBrokersMetadata
public Optional<org.apache.kafka.common.Endpoint> endpointFor(org.apache.kafka.common.network.ListenerName listenerName)
endpointFor
in interface kafka.common.AliveBrokersMetadata
public boolean isEmpty()
isEmpty
in interface kafka.common.AliveBrokersMetadata