...
Since KIP-690: Add additional configuration to control MirrorMaker 2 internal topics naming convention, the replication.policy.separator
has been used to control the name of internal topics for DefaultReplicationPolicy
, causing backward compatibility issues if with offset syncs and checkpoint topics when users set a customized replication.policy.separator
. This impacted 3.1, 3.2, 3.3, 3.4, 3.5 versions.
...
In this KIP, we are proposing to add replication.policy.internal.topic.separator.enabled
to allow customers to control this using configurations instead of providing a new implementation for both checkpoints and offset sync topics. The heartbeat topic isn't controlled by the separator at all.
Public Interfaces
Property | Default value | Description |
---|---|---|
replication.policy.internal.topic.separator.enabled | true | whether or not to use replication.policy.separator to control internal topic names |
...
Code Block | ||
---|---|---|
| ||
public class DefaultReplicationPolicy implements ReplicationPolicy, Configurable { private Boolean isInternalTopicSeparatorEnabled; @Override public void configure(Map<String, ?> props) { if (props.containsKey(INTERNAL_TOPIC_SEPARATOR_ENABLED_CONFIG)) { isInternalTopicSepratorEnabled = (Boolean) props.get(INTERNAL_TOPIC_SEPRATOR_ENABLED_CONFIG); } } private String internalSuffix() { return internalSeparator() + "internal"; } private String internalSuffixinternalSeparator() { return internalSuffix() + isInternalTopicSeparatorEnabled ? separator : "internal."; } private public String checkpointsTopicSuffixoffsetSyncsTopic(String clusterAlias) { // should use return internalSeparator() +to "checkpoints"name + internalSuffix(); } @Override public String offsetSyncsTopicthe offset sync topic public String checkpointsTopic(String clusterAlias) { // return "mm2-offset-syncs" +should use internalSeparator() to +name clusterAliasthe + internalSuffix();offset topic } } |
Backporting plan
- The KIP need to be released as part of the bugfix release to the last 3 versions
- The KIP need to be backported into 3.1 and 3.2 (any other version reached EOL post KIP-690).
...