Class SinkConnector

java.lang.Object
org.apache.kafka.connect.connector.Connector
org.apache.kafka.connect.sink.SinkConnector
All Implemented Interfaces:
Versioned
Direct Known Subclasses:
MockSinkConnector, VerifiableSinkConnector

public abstract class SinkConnector extends Connector
SinkConnectors implement the Connector interface to send Kafka data to another system.

Kafka Connect may discover implementations of this interface using the Java ServiceLoader mechanism. To support this, implementations of this interface should also contain a service provider configuration file in META-INF/services/org.apache.kafka.connect.sink.SinkConnector.

  • Field Details

    • TOPICS_CONFIG

      public static final String TOPICS_CONFIG

      Configuration key for the list of input topics for this connector.

      Usually this setting is only relevant to the Kafka Connect framework, but is provided here for the convenience of Connector developers if they also need to know the set of topics.

      See Also:
  • Constructor Details

    • SinkConnector

      public SinkConnector()
  • Method Details

    • context

      protected SinkConnectorContext context()
      Description copied from class: Connector
      Returns the context object used to interact with the Kafka Connect runtime.
      Overrides:
      context in class Connector
      Returns:
      the context for this Connector.
    • alterOffsets

      public boolean alterOffsets(Map<String,String> connectorConfig, Map<TopicPartition,Long> offsets)
      Invoked when users request to manually alter/reset the offsets for this connector via the Connect worker's REST API. Connectors that manage offsets externally can propagate offset changes to their external system in this method. Connectors may also validate these offsets if, for example, an offset is out of range for what can be feasibly written to the external system.

      Connectors that neither manage offsets externally nor require custom offset validation need not implement this method beyond simply returning true.

      User requests to alter/reset offsets will be handled by the Connect runtime and will be reflected in the offsets for this connector's consumer group.

      Note that altering / resetting offsets is expected to be an idempotent operation and this method should be able to handle being called more than once with the same arguments (which could occur if a user retries the request due to a failure in altering the consumer group offsets, for example).

      Similar to validate, this method may be called by the runtime before the start method is invoked.

      Parameters:
      connectorConfig - the configuration of the connector
      offsets - a map from topic partition to offset, containing the offsets that the user has requested to alter/reset. For any topic partitions whose offsets are being reset instead of altered, their corresponding value in the map will be null. This map may be empty, but never null. An empty offsets map could indicate that the offsets were reset previously or that no offsets have been committed yet.
      Returns:
      whether this method has been overridden by the connector; the default implementation returns false, and all other implementations (that do not unconditionally throw exceptions) should return true
      Throws:
      UnsupportedOperationException - if it is impossible to alter/reset the offsets for this connector
      ConnectException - if the offsets for this connector cannot be reset for any other reason (for example, they have failed custom validation logic specific to this connector)
      Since:
      3.6