Class FileBasedMultiTenantMetadataLoader

java.lang.Object
io.confluent.kafka.multitenant.FileBasedMultiTenantMetadataLoader
All Implemented Interfaces:
AutoCloseable, org.apache.kafka.common.Configurable, org.apache.kafka.server.multitenant.MultiTenantMetadataLoader

public class FileBasedMultiTenantMetadataLoader extends Object implements org.apache.kafka.server.multitenant.MultiTenantMetadataLoader
Load-once MultiTenantMetadataLoader that reads <lkc-id>.json sidecar files from a directory and publishes them via the MultiTenantMetadataPublisher contract.

Intended for local dev / integration environments (e.g. k2-in-a-box) where the topic-backed KafkaLogicalClusterMetadataLoader cannot be used because the _confluent-logical_clusters internal topic does not exist. Production wires the topic-based loader instead; this implementation is not for production use.

Files are read from <multitenant.metadata.dir>/..data following the K8s ConfigMap convention. The directory is read exactly once during start(Map), so changes after start require a broker restart to take effect.

  • Constructor Details

    • FileBasedMultiTenantMetadataLoader

      public FileBasedMultiTenantMetadataLoader(org.apache.kafka.common.metrics.Metrics metrics, org.apache.kafka.common.utils.Time time)
      Reflection constructor used by ConfluentConfigs.buildMultiTenantMetadataLoader(AbstractConfig, Metrics). Args are unused; the loader is configured via configure(Map).
  • Method Details

    • configure

      public void configure(Map<String,?> configs)
      Specified by:
      configure in interface org.apache.kafka.common.Configurable
    • subscribe

      public void subscribe(org.apache.kafka.server.multitenant.MultiTenantMetadataPublisher publisher)
      Specified by:
      subscribe in interface org.apache.kafka.server.multitenant.MultiTenantMetadataLoader
    • start

      public CompletableFuture<Void> start(Map<String,Object> interBrokerClientConfigs)
      Specified by:
      start in interface org.apache.kafka.server.multitenant.MultiTenantMetadataLoader
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable