将kafka群集连接到aws ec2示例

nkcskrwz  于 2021-06-06  发布在  Kafka
关注(0)|答案(2)|浏览(481)

我是Kafka的新手,我的用例是我有Kafka3node集群,如果我在node1中生成消息,它会在node2和node3中自动同步(意味着我在node2和node3中消耗消息),所以现在我希望所有消息都在另一台aws ec2机器中。我该怎么做?

gdx19jrr

gdx19jrr1#

您可以使用ApacheKafka的mirrormaker来促进多数据中心复制。可以使用它在两个kafka集群之间复制数据。
从源集群中的主题读取数据,并将数据写入目标集群中具有相同名称的主题。您可以运行许多这样的镜像进程来提高吞吐量和容错性(如果一个进程死亡,其他进程将接管额外的负载)。
源集群和目标集群是完全独立的实体:它们可以有不同数量的分区,偏移量也不相同。因此,镜像集群并不是真正的容错机制(因为使用者的位置不同)。但是,mirrormaker进程将保留并使用消息键进行分区,以便在每个键的基础上保留顺序。
另一个选项(需要许可)是confluent replicator,它也处理主题配置。
confluent replicator允许您轻松可靠地将主题从一个kafka集群复制到另一个集群。除了复制消息之外,这个连接器还将根据需要创建主题,并在源集群中保留主题配置。这包括保留分区数、复制因子以及为各个主题指定的任何配置覆盖。
这里有一个快速入门教程,可以帮助您开始使用confluent kafka replicator。

uyhoqukh

uyhoqukh2#

如果我理解正确的话,新机器不是kafka代理,所以将数据镜像到它将不起作用。
它在node2和node3中自动同步
仅当复制因子为3或更多时
我的意思是我正在消耗node2和node3中的味精
只有当您有3个或更多的分区时,您才会从所有3个节点进行消费,因为每个分区只有一个前导,所有消费请求都来自它
如果您只是在这台新机器上运行任何使用者进程,您将获得来自现有集群的所有消息。如果您计划出于任何特定原因存储这些消息,我建议您查看kafka connect s3连接器,然后您可以使用athena查询s3 bucket

相关问题