...
This is responsible to resolve Kafka metadata from streams. This may be backed by an external service or simply something logical that is contained in memory. A config map file based implementation will be provided as well for convenience. Similarly to KafkaSource subscriber integration, the #getAllStreams() API is supported here to be able to filter out streams, for example, by a regex.
This interface represents the source of truth for the current metadata and metadata that is removed is considered non-active (e.g. removing a cluster from the return value, means that a cluster is non-active and should not be read from).
Code Block | ||||
---|---|---|---|---|
| ||||
@PublicEvolving public interface KafkaMetadataService extends AutoCloseable, Serializable { /** * Get current metadata for all streams. * * @return set of all streams */ Set<KafkaStream> getAllStreams(); /** * Get current metadata for queried streams. * * @param streamIds stream full names * @return map of stream name to metadata */ Map<String, KafkaStream> describeStreams(Collection<String> streamIds); /** * Check if the cluster is active. * * @param kafkaClusterIdentifier Kafka cluster identifier * @return boolean whether the cluster is active */ boolean isClusterActive(KafkaClusterIdentifier kafkaClusterIdentifier); } |
...