Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 卡夫卡的平行生产与消费_Apache Kafka - Fatal编程技术网

Apache kafka 卡夫卡的平行生产与消费

Apache kafka 卡夫卡的平行生产与消费,apache-kafka,Apache Kafka,1。在同一主题和同一分区上同时消费 假设我有100个分区用于一个给定的主题(例如,购买),我可以轻松地使用一个包含100名消费者的消费群体并行使用这100个分区(例如,电子产品,服装,等等) 然而,这意味着将一个消费者分配给购买的总数据的每个子集。如果我只想用100个消费者同时消费数据的一个子集,该怎么办?例如,对于我的所有消费者来说,他们只想知道购买主题的电子分区 他们有没有办法同时使用这个分区 一般来说,我只希望我的所有消费者同时接收相同的数据集 从我收集的信息来看,消费者似乎无法从副本中消

1。在同一主题和同一分区上同时消费

假设我有100个分区用于一个给定的主题(例如,
购买
),我可以轻松地使用一个包含100名消费者的消费群体并行使用这100个分区(例如,
电子产品
服装
,等等)

然而,这意味着将一个消费者分配给
购买的总数据的每个子集。如果我只想用100个消费者同时消费数据的一个子集,该怎么办?例如,对于我的所有消费者来说,他们只想知道
购买
主题的
电子
分区

他们有没有办法同时使用这个分区

一般来说,我只希望我的所有消费者同时接收相同的数据集

从我收集的信息来看,消费者似乎无法从副本中消费:

我是否可以为多个主题生成相同的数据,例如
Purchase-1[电子产品]
Purchase-2[电子产品]
,这样我就可以同时使用它们了?这是推荐的方法吗

2。在同一主题和同一分区上同时生成

当多个生产者对同一主题和同一分区进行生产时,由于我们只能向分区的前导写入数据,而副本仅用于容错,这是否意味着不存在任何并发性?(即,每次提交都必须排队等待。)

  • 如果这100个消费者属于不同的消费群体,他们可以同时从同一主题和分区消费。在这种情况下,您需要确保每个使用者都能够处理来自100个分区的负载
  • 生产者可以同时向同一主题分区生成消息,但写入该分区的消息的实际顺序由分区负责人确定

  • 如果是这样的话,我只需要为每个主题创建100个主题和1个分区。然后我创建了100个消费者组,这样我的所有消费者都可以得到相同的信息!然而,这确实引出了另一个后续问题。你知道卡夫卡是如何调整阅读量的吗?因为现在我有100个消费者从同一个分区负责人那里读取数据,实际上硬盘上只有一个日志文件。它是如何实现并行的?是的,用户组允许您在组中的用户之间分配读取负载。是否有一些特定的东西,你只能通过一个消费者来完成整个主题?因为您没有充分利用Kafka提供的功能。当前的用例是,我有多个应用程序服务器实例,每个实例都是Kafka集群的使用者。我主要关心的是,让我的每个应用服务器接收相同数据集的最有效、最可靠的方法是什么?这就是为什么我建议每个应用服务器都应该属于自己的消费者群体。这样,它们中的每一个都将接收相同的数据集。如果这些应用程序服务器的功能无法扩展,那么让每一个都属于同一个消费群体可能是一种方法。