当前位置: 首页 > 知识库问答 >
问题:

在Kafka中,为什么我们在使用分区时没有并行性?

元阳荣
2023-03-14

以下是我从Kafka的一个话题中对消费信息的理解。

使用者组负责从单个主题读取信息。如果一个主题有 5 个分区,并且使用者组中有 5 个使用者,则每个使用者从一个整个分区读取信息。如果我在使用者组中添加另一个使用者,则新添加的使用者将处于空闲状态。

与其将新消费者置于空闲状态,为什么Kafak不允许从已经被不同消费者消费的分区中消费信息?如果发生这种情况,将会有更多的并行性。

所以在jist中:在一个消费者-消费者群体中,为什么Kafka不允许多个消费者从单个分区读取信息?

谢谢!

共有1个答案

邹杰
2023-03-14

在许多用例中,kafka分区也用于提供对特定键的排序。例如,在为某些用户处理事件时,我们可能希望总体上并行处理事件,但为了某个用户(用户更新事件只能在用户创建事件后处理)。在这种情况下,我们将使用用户ID作为分区键,以便该用户的所有事件都转到一个特定分区,因此可以按顺序处理。

如果这不是您的用例,您始终可以在消费者中批量读取事件并以并行方式处理它们。

 类似资料:
  • 问题内容: 有什么用的,并在Hibernate?因为我在互联网上发现的每个示例都将数据插入到单个表中,并使用两个不同的类来做到这一点。我的观点是,如果我使用单个表,那么我可以在单个类中映射所有列,那么为什么要使用不同的类。如果我们使用两个不同的表,则存在和hibernate关系。 问题答案: Hibernate 1中有两种对象。Value Object2 。实体 价值对象 是不能独立存在的对象。以

  • 我们为什么使用: 而不是: ?

  • 问题内容: 有什么用的,并在Hibernate?因为我在互联网上发现的每个示例都是在单个表中插入数据,并使用两个不同的类来完成此操作。我的观点是,如果我使用单个表,那么我可以在单个类中映射所有列,那么为什么要使用不同的类。如果我们使用两个不同的表,则存在和休眠关系。 问题答案: Hibernate 1中有两种类型的对象。Value Object2 。实体 价值对象 是不能独立存在的对象。以为例。如

  • 问题内容: 试图找到AngularJS的一些基本信息,但是AngularJS文档并没有太大帮助。简单地说,我们为什么要使用它? 同样,在约翰·帕帕(John Papa)的Hot Towel模板中,通用模块中有一个自定义函数: 我不明白这是怎么回事。因此,这是几个基本问​​题: 1)怎么办? 2)和之间有什么区别? 问题答案: 怎么办? 正在通过应用程序范围发送事件。该应用程序的任何子级范围都可以使

  • 问题内容: 我只是想知道为什么我们通常在两个布尔之间使用逻辑 而不是按位,尽管它们都运行良好。 我的意思是,请看以下内容: | | 我们可以|代替使用||吗?与&和相同&&。 问题答案: 如果使用和形式,而不是这些运算符的和形式,则Java不会费心地单独评估右手操作数。 多数情况下,是否要缩短评估是一个问题。 说明短路好处的一个好方法是考虑以下示例。 正如Jeremy和Peter提到的,短路的另一

  • 我有一个关于将数据放入Kafka主题的流作业,另一个流作业使用Kafka主题中的数据。我的Kafka群集的分区号配置为3。 当我将作业的并行性设置为4时,只有3个插槽忙于生成数据,只有3个使用者子任务获取了数据。 考虑到任务槽数量的限制,我想将并行性更改为1。但是,当我将作业的并行性设置为1时,只有1个使用者任务槽获得了数据。 在我看来,即使我将并行度设置为1,我仍然将数据放入3个分区,并且可以有