我开始学习Kafka用于企业解决方案。
在我阅读的过程中,我脑海中浮现出一些问题:
>
每个消费者组在代理上有一个对应的分区还是每个消费者都有一个?
分区是由代理创建的,因此不是消费者关心的问题吗?
由于这是一个队列,每个分区都有一个偏移量,那么使用者是否有责任指定它要读取哪些消息呢?它需要保存它的状态吗?
从队列中删除消息时会发生什么?--例如:保留了3个小时,然后时间过去了,两边的偏置是怎么处理的?
在回答每个问题之前,让我们添加一个生产者组件的概述:
生产者将决定放置任何消息的目标分区,具体取决于:
您应该始终配置group.id,除非您使用的是简单赋值API,并且不需要在Kafka中存储偏移量。它不会是任何团体的一部分。来源
在一个使用者组中,每个分区将只由一个使用者处理。这些是可能的情况
使用者应该知道分区的数量,如问题3中所讨论的。
Kafka(作为特定的组协调器)通过向内部__consumer_offsets主题生成消息来处理偏移量状态,通过将enable.auto.commit
设置为false
也可以将此行为配置为manual。在这种情况下,consumer.commitSync()
和consumer.commitAsync()
可能有助于管理偏移量。
有关组协调员得详细信息:
如果任何使用者在保留期后启动,消息将按照auto.offset.reset
配置使用,该配置可能是最新/最早
。从技术上讲,它是最新的
(开始处理新消息),因为到那时所有消息都过期了,并且保留是主题级配置。
Kafka主题分区偏移位置始终从0或随机值开始,如何确保使用者记录是分区中的第一条记录?有没有办法找出答案?如果有的话,请让我知道。谢谢。
假设我有一个名为“MyTopic”的主题,它有3个分区P0、P1和P2。这些分区中的每一个都有一个leader,并且本主题的数据(消息)分布在这些分区中。 1.Producer将始终根据代理上的负载以循环方式写到分区的领导者。对吗? 2.制作人如何认识隔断的首领?
我有一个主题T,它有4个分区TP1、TP2、TP4和TP4。 假设我有8条消息M1到M8。现在当我的制作人将这些消息发送到主题T时,在以下场景下,Kafka经纪人将如何接收它们: 场景1:只有一个kafka broker实例具有前面提到的分区的主题T。 现在假设kafka broker实例1宕机,消费者会作何反应?我假设我的使用者正在读取broker实例1。
简单问题: 假设我有一个具有3个分区的主题:Topic:StateEvents P1、P2和P3。 让我们假设生产者生成20条消息: 1, 2, 3, ..........20 我的问题是: 当制作人生成这些消息时: 1)每个消息将只在且仅在1个分区?也就是说,1在P1,2在P2,3在P3,然后4在P1,5在P2,6在P3,以此类推? 2)如果#1为真,当消费者订阅时,它将订阅所有分区,以便获得所
我正在学习Kafka,并试图为我最近的搜索应用程序创建一个主题。被推送到Kafka主题的数据被认为是一个很高的数字。 我的kafka集群有3个代理,并且已经为其他要求创建了主题。 现在,我应该为最近的搜索主题选择多少个分区?如果我没有明确提供分区号呢?选择分区号时需要考虑哪些事项?
null 谢谢你的澄清。