[ 
https://issues.apache.org/jira/browse/KAFKA-7500?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16931776#comment-16931776
 ] 

Ryanne Dolan commented on KAFKA-7500:
-------------------------------------

[~qihong] That's all correct :)

In fact, KIP-382 mentions a "primary" cluster (in your case "C") and a single 
Connect cluster being used to replicate data between any number of other 
clusters. One way to do this is with a SinkConnector (part of the KIP and 
coming later) s.t. records travel _through_ the primary cluster to other 
clusters. I believe you could also override the Connect Worker's internal 
Producer config to write directly to another cluster, s.t., as you say, state 
is stored in one cluster but records go to another. I've never tried that, 
ymmv, but I suspect it'd work as you've described.

Notice that, generally, you will end up with multiple Connect clusters anyway 
-- one in each DC -- for performance and HA reasons. At that point you are back 
to managing multiple Connectors on multiple Connect clusters. MM2's top-level 
driver manages that complexity for you by automatically spinning up and 
configuring all the required Workers.

re a REST API, the MM2 driver essentially turns off the REST service inside 
each Herder. This is because the current Connect REST API doesn't support 
having multiple Herders or Worker configs, so we'd need to sorta abuse the 
Connect REST API to get it to work. However, there was much discussion around 
KIP-382 re an MM2 REST API, and there are several good ideas floating around. 
These were ultimately deferred, but not ruled out.

Also, fwiw, I have successfully run an MM2 cluster with the Connect REST API 
turned on, with each Herder's endpoints wrapped in a higher-level API. I have 
done this successfully with a reverse proxy as well as with a fork of Connect's 
RestServer. This enables you to start/stop/configure individual connectors 
within the MM2 cluster, if you so wish. 

And finally: MM2 is very pluggable. For example, you can drop in a TopicFilter 
that grabs dynamic whitelists from somewhere. I happen to know this works very 
well :)

> MirrorMaker 2.0 (KIP-382)
> -------------------------
>
>                 Key: KAFKA-7500
>                 URL: https://issues.apache.org/jira/browse/KAFKA-7500
>             Project: Kafka
>          Issue Type: New Feature
>          Components: KafkaConnect, mirrormaker
>    Affects Versions: 2.4.0
>            Reporter: Ryanne Dolan
>            Assignee: Manikumar
>            Priority: Major
>              Labels: pull-request-available, ready-to-commit
>             Fix For: 2.4.0
>
>         Attachments: Active-Active XDCR setup.png
>
>
> ImplementĀ a drop-in replacement for MirrorMaker leveraging the Connect 
> framework.
> [https://cwiki.apache.org/confluence/display/KAFKA/KIP-382%3A+MirrorMaker+2.0]
> [https://github.com/apache/kafka/pull/6295]



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to