We're using MirrorMaker2 to replicate some topics from one kerberized kafka cluster to another kafka cluster (strictly unidirectional). We don't control the source kafka cluster and we're given only access to describe and read specific topics that are to be consumed.
MirrorMaker2 creates and maintains a topic (mm2-offset-syncs
) in the source cluster to encode cluster-to-cluster offset mappings for each topic-partition being replicated and also creates an AdminClient
in the source cluster to handle ACL/Config propagation. Because MM2 needs authorization to create and write to these topics in the source cluster, or to perform operations through AdminClient
, I'm trying to understand why/if we need these mechanisms in our scenario.
My question is:
- In a strictly unidirectional scenario, what is the usefulness of this source-cluster offset-sync topic to Mirrormaker?
- If indeed it's superfluous, is it possible to disable it or operate mm2 without access to create/produce to this topic?
- If ACL and Config propagation is disabled, is it safe to assume that the
AdminClient
is not used for anything else?
In the MirrorMaker code, the offset-sync topic it is readily created by MirrorSourceConnector
when it starts and then maintained by the MirrorSourceTask
. The same happens to AdminClient in the MirrorSourceConnector
.
I have found no way to toggle off these features but honestly I might be missing something in my line of thought.