Class KafkaAdmin

All Implemented Interfaces:
Aware, SmartInitializingSingleton, ApplicationContextAware, KafkaAdminOperations

An admin that delegates to an AdminClient to create topics defined in the application context.
Since:
1.3
Author:
Gary Russell, Artem Bilan
  • Field Details

    • DEFAULT_CLOSE_TIMEOUT

      public static final Duration DEFAULT_CLOSE_TIMEOUT
      The default close timeout duration as 10 seconds.
  • Constructor Details

    • KafkaAdmin

      public KafkaAdmin(Map<String,Object> config)
      Create an instance with an AdminClient based on the supplied configuration.
      Parameters:
      config - the configuration for the AdminClient.
  • Method Details

    • setApplicationContext

      public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
      Specified by:
      setApplicationContext in interface ApplicationContextAware
      Throws:
      BeansException
    • setCloseTimeout

      public void setCloseTimeout(int closeTimeout)
      Set the close timeout in seconds. Defaults to DEFAULT_CLOSE_TIMEOUT seconds.
      Parameters:
      closeTimeout - the timeout.
    • setOperationTimeout

      public void setOperationTimeout(int operationTimeout)
      Set the operation timeout in seconds. Defaults to 30 seconds.
      Parameters:
      operationTimeout - the timeout.
    • setFatalIfBrokerNotAvailable

      public void setFatalIfBrokerNotAvailable(boolean fatalIfBrokerNotAvailable)
      Set to true if you want the application context to fail to load if we are unable to connect to the broker during initialization, to check/add topics.
      Parameters:
      fatalIfBrokerNotAvailable - true to fail.
    • setAutoCreate

      public void setAutoCreate(boolean autoCreate)
      Set to false to suppress auto creation of topics during context initialization.
      Parameters:
      autoCreate - boolean flag to indicate creating topics or not during context initialization
      See Also:
    • setModifyTopicConfigs

      public void setModifyTopicConfigs(boolean modifyTopicConfigs)
      Set to true to compare the current topic configuration properties with those in the NewTopic bean, and update if different.
      Parameters:
      modifyTopicConfigs - true to check and update configs if necessary.
      Since:
      2.8.7
    • getConfigurationProperties

      public Map<String,Object> getConfigurationProperties()
      Description copied from interface: KafkaAdminOperations
      Get an unmodifiable copy of this admin's configuration.
      Specified by:
      getConfigurationProperties in interface KafkaAdminOperations
      Returns:
      the configuration map.
    • afterSingletonsInstantiated

      public void afterSingletonsInstantiated()
      Specified by:
      afterSingletonsInstantiated in interface SmartInitializingSingleton
    • initialize

      public final boolean initialize()
      Call this method to check/add topics; this might be needed if the broker was not available when the application context was initialized, and fatalIfBrokerNotAvailable is false, or autoCreate was set to false.
      Returns:
      true if successful.
      See Also:
    • createOrModifyTopics

      public void createOrModifyTopics(org.apache.kafka.clients.admin.NewTopic... topics)
      Description copied from interface: KafkaAdminOperations
      Create topics if they don't exist or increase the number of partitions if needed.
      Specified by:
      createOrModifyTopics in interface KafkaAdminOperations
      Parameters:
      topics - the topics.
    • describeTopics

      public Map<String,org.apache.kafka.clients.admin.TopicDescription> describeTopics(String... topicNames)
      Description copied from interface: KafkaAdminOperations
      Obtain TopicDescriptions for these topics.
      Specified by:
      describeTopics in interface KafkaAdminOperations
      Parameters:
      topicNames - the topic names.
      Returns:
      a map of name:topicDescription.