Class PhysicalClusterMetadata

java.lang.Object
io.confluent.kafka.multitenant.BasePhysicalClusterMetadata<io.confluent.kafka.multitenant.KafkaLogicalClusterMetadata>
io.confluent.kafka.multitenant.PhysicalClusterMetadata
All Implemented Interfaces:
org.apache.kafka.common.Configurable, org.apache.kafka.common.Reconfigurable, org.apache.kafka.server.multitenant.MultiTenantMetadata

public class PhysicalClusterMetadata extends io.confluent.kafka.multitenant.BasePhysicalClusterMetadata<io.confluent.kafka.multitenant.KafkaLogicalClusterMetadata>
This holds metadata passed from CCloud related to this physical cluster
  • Field Details

  • Constructor Details

    • PhysicalClusterMetadata

      public PhysicalClusterMetadata(org.apache.kafka.common.metrics.Metrics metrics)
    • PhysicalClusterMetadata

      public PhysicalClusterMetadata(org.apache.kafka.common.metrics.Metrics metrics, org.apache.kafka.common.utils.Time time)
  • Method Details

    • configure

      public void configure(Map<String,?> configs)
      Loads the cache and starts listening for directory events in directory specified in ConfluentConfigs.MULTITENANT_METADATA_DIR_CONFIG config. Adds the instance for the given broker session UUID, specified in KafkaConfig.BrokerSessionUuidProp, to the static instance map. The caller of this method must call close() when done to remove the instance from the static map. In addition to events in the directory, we are scheduling a full reload of the directory every MULTITENANT_METADATA_RELOAD_DELAY_MS to make sure nothing is missed
      Parameters:
      configs - broker configuration
      Throws:
      org.apache.kafka.common.config.ConfigException - if KafkaConfig.BrokerSessionUuidProp is not set, or ConfluentConfigs.MULTITENANT_METADATA_DIR_CONFIG is not set.
      UnsupportedOperationException - if another instance of this class with the same broker session UUID was already configured.
    • close

      public void close(String brokerSessionUuid)
    • startClients

      public void startClients(Function<String, org.apache.kafka.clients.admin.Admin> adminClientSupplier)
    • start

      public Map<org.apache.kafka.common.Endpoint, CompletableFuture<Void>> start(Map<String,Object> interBrokerClientConfigs, Collection<org.apache.kafka.common.Endpoint> endpoints)
    • isUp

      public boolean isUp()
      Returns true if cache is loaded and listening for metadata, otherwise returns false.
    • dedicatedLogicalClusterId

      public String dedicatedLogicalClusterId()
    • kafkaLogicalClusterIds

      public Set<String> kafkaLogicalClusterIds()
    • logicalClusterIds

      public Set<String> logicalClusterIds()
    • logicalClusterIdsIncludingStale

      public Set<String> logicalClusterIdsIncludingStale()
      Specified by:
      logicalClusterIdsIncludingStale in class io.confluent.kafka.multitenant.BasePhysicalClusterMetadata<io.confluent.kafka.multitenant.KafkaLogicalClusterMetadata>
    • metadata

      public io.confluent.kafka.multitenant.KafkaLogicalClusterMetadata metadata(String logicalClusterId)
      Specified by:
      metadata in interface org.apache.kafka.server.multitenant.MultiTenantMetadata
      Specified by:
      metadata in class io.confluent.kafka.multitenant.BasePhysicalClusterMetadata<io.confluent.kafka.multitenant.KafkaLogicalClusterMetadata>