DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Status
Current state: Under Discussion
Discussion thread: here
JIRA: KAFKA-13365
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
Motivation
As of present, MirrorMaker 2 (aka MM2) 's client configurtaion feature has some problems:
- The replication-level client configuration works only to the common properties like
bootstrap.servers,security.protocol, ssl, sasl, etc; that is, a configuration like'A→B.producer.batch.size'is ignored.- Also, which admin client is affected by the replication-level configuration like A→B.admin.retry.backoff.ms is unclear; MM2 uses two admin clients for both upstream and downstream clusters, respectively.
- MM2 is based on Kafka Connect framework's connector; Since MM2 Connectors (
MirrorSourceConnector,MirrorCheckpointConnector, andMirrorHeartbeatConnector) are source connectors, they use producer instance created by Kafka Connector, which uses'producer.override.{property-name}'in connector configuration; But,'target.producer.{property-name}'are not automatically applied to'producer.override.{property-name}'so not actually applied to producer instance. - MM2 requires to define the
'bootstrap.servers'of the clusters in cluster-level, like'A.bootstrap.servers'or'B.bootstrap.servers'; but it also allows to override them in cluster-level and replication-level configs, like'A.producer.bootstrap.servers'or'A→B.consumer.bootstrap.servers'; actually these configurations are not used but, it would be better to ignore it and give a warning.
For the proof of the problem, please refer here.
Public Interfaces
This proposal does not introduce any new public interface or configurable settings; it only makes the existing ones (which are currently ignored by MirrorMaker 2) working by providing consistent, easy-to-understand configuration rules.
Proposed Changes
- The replication-level client configuration now works;
A->B.producer.{property-name}andA->B.admin.{property-name}are applied to target cluster clients andA->B.consumer.{property-name}is applied to source cluster clients. - In standalone mode,
target.producer.{property-name}is automatically copied toproducer.override.{property-name}. In connector mode, the user should manually configure them, and the documentation will explicitly mention it. - Cluster-level and replication-level client bootstrap servers configurations will be ignored and show a warning message.
Compatibility, Deprecation, and Migration Plan
Since this proposal only makes currently not working settings work, there is no deprecation or migration plan.
Rejected Alternatives
None.