我是Kafka的新手,正在学习Kafka内部知识。请根据需要随时更正我的理解。。
这是我的实时场景..感谢所有的回复:
假设我将编写两个消费者,一个用于oracle,另一个用于postgres。
问题1:两个消费者应该在同一个消费者组中吗?我相信不会,因为这会导致一个消费者只从特定分区接收消息。
问题2:如果问题1是真的。那么请告诉我,在什么情况下,多个消费者被归入同一个消费者群体?实时场景非常受欢迎。
不,两个消费者都不想在同一个消费者群体中,因为他们需要分别使用所有主题数据并写入Otable和Ptable。
如果两个消费者都在一个消费者组中,则Otable在一个分区中获取数据,Ptable从其他分区获取数据。(因为您有2个分区)
在我看来,使用两个消费者和两个消费群体,然后如果你的话题有高流量,那么你可以分别为Otable和Ptable扩展消费者数量。
如果您需要两个消费者来编写Ptable,请对这两个消费者使用相同的组id。那么消费者流量将与许多消费者共享。(在您的例子中,一个组的最大消费者数量应该是2,因为您的主题中只有2个分区)。如果Otable需要这个,请遵循相同的场景。
消费者组是一个逻辑名称,它将一个应用程序的消费者组合在一起,他们共同努力完成主题内的数据处理,每个分区只能由消费者组的一个消费者处理,使分区计数成为一个主题并行消耗/处理能力的最大限制。消费者组中的每个消费者都在处理一个或多个分区,如果你有一个有许多分区的主题消费者,它将自己处理所有分区,如果你将更多的消费者添加到同一个消费者组中,他们将在其中划分/“重新平衡”主题分区,希望它能清理事情
设置使用者时,请配置其组 ID,这就是使用者组,具有相同组 ID 的两个单独的使用者将成为同一使用者组的成员
如果有高产量的情况下,一个消费者无法处理压力,您可以通过运行具有相同消费者组的更多消费者来扩展它,以共同处理主题,每个任务将在不同的分区上拥有所有权
对于您的用例,Postgres和Oracle的完全同步不容易实现,您可以使用kafka connect通过相关的sink连接器将数据从您的主题读取到您的目标,但是它们将“最终保持一致”,因为它们不共享原子事务
我将探索spring数据转换层
跨多个数据源的事务进行Spring@Transactional
我在使用Kafka时遇到了一些问题。非常感谢任何帮助!我在docker swell中分别有zookeeper和kafka集群3个节点。您可以在下面看到Kafka代理配置。 我的情况: < li > 20x位制片人不断向Kafka主题传达信息 < li>1x消费者读取和记录消息 < li >终止kafka节点(docker容器停止),因此现在群集有2个Kafka代理节点(第3个节点将自动启动并加入群
我们希望获得Kafka消费群体指标(例如,节流和字节率)。 我们已经使用以下工具完成了此操作: Kafka消费者Java应用程序的JMX Mbean CLI实用程序: bin/kafka-consumer-groups.sh--描述--组group_name--bootstrap-serverlocalhost: port . 问题:这可以通过使用一些Java库以编程方式完成吗? 到目前为止,我们
我正在阅读Kafka常见问题解答,他们如下所示。 •每个分区不会被每个使用者组中的多个使用者线程/进程使用。这允许每个进程以单线程方式使用,以保证分区内的使用者的顺序(如果我们将有序消息分割成一个分区并将它们传递给多个使用者,即使这些消息是按顺序存储的,它们有时也会被无序地处理)。 有没有可能,
我们在Kubernetes中基于<code>gcr.io/google_containers/Kubernetes-Kafka:1.0-10.2.1</code>docker映像运行一个Kafka集群,使用<code>gcr.io/google_containers/Kubernetes-zookeeper:1.0-3.4.10</code>,使用三个Kafka和zookeer实例。 我们有几个不
我运行这个命令: kafka使用者组--引导服务器localhost:9092--组我的使用者组--重置偏移量--最早--执行--主题my-topic-1 它给出了错误: 命令的语法不正确。 根据此命令的帮助结果,我键入的内容似乎是正确的。 我在这里犯了什么错误?
当我只打开一次处理时,我会得到以下错误。注意:我们的应用程序非常安全,我们只允许Kafka用户和消费者访问他们明确需要的资源。 只有一次处理kafka流是否在所有流任务中使用每个流任务的消费者组而不是消费者组?