Hi Sebastian & Ryanne,

do you have maybe an implementation of this is just some ideas about how to
implement the policy that does not rename topics?
I am checking the ReplicationPolicy interface and don't really know what
the impact will be if I implement this:

public String formatRemoteTopic(String sourceClusterAlias, String topic) {
return topic; }
public String topicSource(String topic) { return null; // well, I do not
really know if this were a mirrored topic or not }
public String upstreamTopic(String topic) { return topic;  // well, I do
not really know if this were a mirrored topic or not}
public String originalTopic(String topic) { return topic; }

Thanks,
Peter

On Mon, 30 Dec 2019 at 06:57, Ryanne Dolan <ryannedo...@gmail.com> wrote:

> Sebastian, you can drop in a custom jar in the "Connect plug-in path" and
> MM2 will be able to load it. That enables you to implement your own
> ReplicationPolicy (and other pluggable interfaces) without compiling
> everything.
>
> In an upcoming release we'll have a "LegacyReplicationPolicy" that does not
> rename topics. It's possible "SimpleReplicationPolicy" is a better name.
>
> Be advised that some features depend on correct ReplicationPolicy
> semantics, which LegacyReplicationPolicy will explicitly break. For
> example, MM2 cannot prevent cycles if topics are not renamed (or some other
> similar mechanism is used).
>
> Ryanne
>
> On Sun, Dec 29, 2019, 7:41 PM Sebastian Schmitz <
> sebastian.schm...@propellerhead.co.nz> wrote:
>
> > Hello,
> >
> > I found that it's using the DefaultReplicationPolicy that always returns
> > "sourceClusterAlias + separator + topic" with only the separator being
> > configurable in the configuration-file with REPLICATION_POLICY_SEPARATOR.
> >
> > It seems like I need a different ReplicationPolicy, like a
> > SimpleReplicationPolicy which always returns "topic" for the
> > formatRemoteTopic, then. But that would mean that I can't download the
> > Binaries and have to build the whole thing myself after adding the new
> > Policy-file!?
> > Or I could create a PR for a SimpleReplicationPolicy to be in some
> > future build...
> >
> > Any suggestions for this?
> >
> > Thanks
> >
> > Sebastian
> >
> >
> > On 30-Dec-19 1:39 PM, Sebastian Schmitz wrote:
> > > Hello,
> > >
> > > another thing I found and didn't find any configuration in the KIP yet
> > > was that if I have two clusters (source and target) and a topic
> > > "replicateme" on the source-cluster it will get replicated to the
> > > target-cluster as "source.replicateme".
> > >
> > > How can I stop it from adding the cluster-name in front of the
> > > topic-name on target-cluster?
> > >
> > > Thanks
> > >
> > > Sebastian
> > >
> > > On 27-Dec-19 7:24 AM, Sebastian Schmitz wrote:
> > >> Hello Ryanne,
> > >>
> > >> Is there a way to prevent that from happening? We have two separate
> > >> clusters with some topics being replicated to the second one for
> > >> reporting. If we replicate everything again that reporting would
> > >> probably have some problems.
> > >>
> > >> Yes, I wondered when the Networking-guys would come and complain
> > >> about me using too much bandwidth on the VPN-Link ;)
> > >>
> > >> Thanks
> > >>
> > >> Sebastian
> > >>
> > >> On 24-Dec-19 1:11 PM, Ryanne Dolan wrote:
> > >>> Glad to hear you are replicating now :)
> > >>>
> > >>>> it probably started mirroring the last seven days as there was no
> > >>>> offset
> > >>> for the new consumer-group.
> > >>>
> > >>> That's correct -- MM2 will replicate the entire topic, as far back
> > >>> as the
> > >>> retention period. However, technically there are no consumer groups
> > >>> in MM2!
> > >>>
> > >>> 550MB/s in a test cluster sounds pretty good to me. Try increasing
> > >>> "tasks.max" and adding additional nodes.
> > >>>
> > >>> Ryanne
> > >>>
> > >>>
> > >>> On Mon, Dec 23, 2019 at 5:40 PM Sebastian Schmitz <
> > >>> sebastian.schm...@propellerhead.co.nz> wrote:
> > >>>
> > >>>> Hello again!
> > >>>>
> > >>>> Some probably important configs I found out:
> > >>>>
> > >>>> We need this to enable mirroring as it seems to disabled by default?
> > >>>>
> > >>>> source->target.enabled = true
> > >>>> target->source.enabled = true
> > >>>>
> > >>>> Also, the Client-IDs can be configured using:
> > >>>>
> > >>>> source.client.id = my_cool_id
> > >>>> target.client.id = my_cooler_id
> > >>>>
> > >>>> I configured them to include the ID of the server and the name of
> the
> > >>>> environment to have separate IDs per mirror-node.
> > >>>>
> > >>>> After adding these two, it looks a bit better than before, but
> > >>>> still not
> > >>>> satisfied as it started to mirror from my prod to test with 550MB/s
> as
> > >>>> it probably started mirroring the last seven days as there was no
> > >>>> offset
> > >>>> for the new consumer-group. That's next on my list to solve.
> > >>>>
> > >>>> Best regards
> > >>>>
> > >>>> Sebastian
> > >>>>
> > >>>> On 24-Dec-19 8:34 AM, Sebastian Schmitz wrote:
> > >>>>> Hello,
> > >>>>>
> > >>>>> I tried running this connect-mirror-config:
> > >>>>>
> > >>>>> <snip>
> > >>>>> name = $MIRROR_NAME
> > >>>>> clusters = source, target
> > >>>>> source.bootstrap.servers = $SOURCE_SERVERS
> > >>>>> target.bootstrap.servers = $TARGET_SERVERS
> > >>>>> source->target.topics = $SOURCE_TARGET_TOPICS
> > >>>>> target->source.topics = $TARGET_SOURCE_TOPICS
> > >>>>> source->target.emit.heartbeats.enabled = true
> > >>>>> target->source.emit.heartbeats.enabled = true
> > >>>>> connector.class =
> > >>>>> org.apache.kafka.connect.mirror.MirrorSourceConnector
> > >>>>>
> > >>>>> # disable some new features
> > >>>>> refresh.topics.enabled = false
> > >>>>> refresh.groups.enabled = false
> > >>>>> emit.checkpoints.enables = true
> > >>>>> emit.heartbeats.enabled = true
> > >>>>> sync.topic.configs.enabled = false
> > >>>>> sync.topic.acls.enabled = false
> > >>>>> </snip>
> > >>>>>
> > >>>>> SOURCE_SERVERS and TARGET_SERVERS are a comma-separated list of
> three
> > >>>>> brokers with ports.
> > >>>>> The TOPICS are |-separated lists of topics.
> > >>>>>
> > >>>>> I get these warning during startup which is a bit weird as I never
> > >>>>> supplied any of those settings, but maybe I should?
> > >>>>>
> > >>>>> [2019-12-23 00:36:25,918] WARN The configuration
> > >>>>> 'config.storage.topic' was supplied but isn't a known config.
> > >>>>> (org.apache.kafka.clients.producer.ProducerConfig:355)
> > >>>>> [2019-12-23 00:36:25,918] WARN The configuration
> > >>>>> 'producer.bootstrap.servers' was supplied but isn't a known config.
> > >>>>> (org.apache.kafka.clients.producer.ProducerConfig:355)
> > >>>>> [2019-12-23 00:36:25,918] WARN The configuration 'group.id' was
> > >>>>> supplied but isn't a known config.
> > >>>>> (org.apache.kafka.clients.producer.ProducerConfig:355)
> > >>>>> [2019-12-23 00:36:25,919] WARN The configuration
> > >>>>> 'status.storage.topic' was supplied but isn't a known config.
> > >>>>> (org.apache.kafka.clients.producer.ProducerConfig:355)
> > >>>>> [2019-12-23 00:36:25,919] WARN The configuration 'header.converter'
> > >>>>> was supplied but isn't a known config.
> > >>>>> (org.apache.kafka.clients.producer.ProducerConfig:355)
> > >>>>> [2019-12-23 00:36:25,919] WARN The configuration
> > >>>>> 'consumer.bootstrap.servers' was supplied but isn't a known config.
> > >>>>> (org.apache.kafka.clients.producer.ProducerConfig:355)
> > >>>>> [2019-12-23 00:36:25,919] WARN The configuration
> > >>>>> 'offset.storage.topic' was supplied but isn't a known config.
> > >>>>> (org.apache.kafka.clients.producer.ProducerConfig:355)
> > >>>>> [2019-12-23 00:36:25,919] WARN The configuration 'value.converter'
> > >>>>> was
> > >>>>> supplied but isn't a known config.
> > >>>>> (org.apache.kafka.clients.producer.ProducerConfig:355)
> > >>>>> [2019-12-23 00:36:25,919] WARN The configuration 'key.converter'
> was
> > >>>>> supplied but isn't a known config.
> > >>>>> (org.apache.kafka.clients.producer.ProducerConfig:355)
> > >>>>> [2019-12-23 00:36:25,919] WARN The configuration
> > >>>>> 'admin.bootstrap.servers' was supplied but isn't a known config.
> > >>>>> (org.apache.kafka.clients.producer.ProducerConfig:355)
> > >>>>>
> > >>>>> And this error:
> > >>>>>
> > >>>>> [2019-12-23 00:36:29,320] ERROR Plugin class loader for connector:
> > >>>>> 'org.apache.kafka.connect.mirror.MirrorSourceConnector' was not
> > >>>>> found.
> > >>>>> Returning:
> > >>>>>
> > org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader@5c316230
> > >>>>>
> > >>>>>
> > (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:165)
> > >>>>>
> > >>>>>
> > >>>>> First I tried the config mentioned in the KIP for "MirrorMaker
> > >>>>> Clusters" which didn't work and I found removing the "cluster."
> from
> > >>>>> the bootstrap-servers made it work a bit more, at least it didn't
> > >>>>> complain about not having any servers in the config.
> > >>>>> So, I checked the "Running a dedicated MirrorMaker cluster"from the
> > >>>>> KIP, which is basically more or less the same, but without the
> > >>>>> "cluster." for the servers and it does at least start and it looks
> > >>>>> like all the three MMs find each other, but no mirroring taking
> > >>>>> place.
> > >>>>>
> > >>>>> Running the legacy-config from the old MM is working fine though.
> > >>>>> I'll
> > >>>>> try to do some more digging today, so if you need some of those
> very
> > >>>>> verbose logs or something else just let me know. I am sure that I
> can
> > >>>>> figure this out and just wanted to know if the documentation will
> get
> > >>>>> extended as the new MM2 has a lot of features and is a bit more
> > >>>>> complicated than the old one...
> > >>>>>
> > >>>>> Thanks
> > >>>>>
> > >>>>> Sebastian
> > >>>>>
> > >>>>> On 24-Dec-19 8:06 AM, Ryanne Dolan wrote:
> > >>>>>> Hello Sebastian, please let us know what issues you are facing
> > >>>>>> and we
> > >>>>>> can
> > >>>>>> probably help. Which config from the KIP are you referencing?
> > >>>>>> Also check
> > >>>>>> out the readme under ./connect/mirror for more examples.
> > >>>>>>
> > >>>>>> Ryanne
> > >>>>>>
> > >>>>>> On Mon, Dec 23, 2019, 12:58 PM Sebastian Schmitz <
> > >>>>>> sebastian.schm...@propellerhead.co.nz> wrote:
> > >>>>>>
> > >>>>>>> Hello,
> > >>>>>>>
> > >>>>>>> I'm currently trying to implement the new Kafka 2.4.0 and the
> > >>>>>>> new MM2.
> > >>>>>>>
> > >>>>>>> However, it looks like the only documentation available is the
> > >>>>>>> KIP-382,
> > >>>>>>> and the documentation
> > >>>>>>> (https://kafka.apache.org/documentation/#basic_ops_mirror_maker)
> > >>>>>>> for
> > >>>>>>> the
> > >>>>>>> MM isn't yet updated, and the documentation in the KIP seems to
> be
> > >>>>>>> missing some stuff as I get a lot of errors and warning when
> > >>>>>>> starting
> > >>>>>>> the MM2 as connect-mirror, and it doesn't mirror, so I probably
> > >>>>>>> have
> > >>>>>>> some mistakes in my configuration, but can't confirm this as
> > >>>>>>> it's the
> > >>>>>>> same as in the KIP.
> > >>>>>>>
> > >>>>>>> Any plans when the documentation will be updated?
> > >>>>>>>
> > >>>>>>> Thanks
> > >>>>>>>
> > >>>>>>> Sebastian
> > >>>>>>>
> > >>>>>>>
> > >>>>>>> --
> > >>>>>>> DISCLAIMER
> > >>>>>>> This email contains information that is confidential and which
> > >>>>>>> may be
> > >>>>>>> legally privileged. If you have received this email in error
> please
> > >>>>>>>
> > >>>>>>> notify the sender immediately and delete the email.
> > >>>>>>> This email is intended
> > >>>>>>> solely for the use of the intended recipient and you may not use
> or
> > >>>>>>> disclose this email in any way.
> > >>>>>>>
> > >>>> --
> > >>>> DISCLAIMER
> > >>>> This email contains information that is confidential and which
> > >>>> may be
> > >>>> legally privileged. If you have received this email in error please
> > >>>>
> > >>>> notify the sender immediately and delete the email.
> > >>>> This email is intended
> > >>>> solely for the use of the intended recipient and you may not use or
> > >>>> disclose this email in any way.
> > >>>>
> >
> > --
> > DISCLAIMER
> > This email contains information that is confidential and which
> > may be
> > legally privileged. If you have received this email in error please
> >
> > notify the sender immediately and delete the email.
> > This email is intended
> > solely for the use of the intended recipient and you may not use or
> > disclose this email in any way.
> >
>

Reply via email to