偏移量是主题/分区的属性,还是使用者的属性?
如果这是消费者的财产,是否意味着从同一分区读取的多个消费者可能具有不同的偏移量?
如果一个消费者崩溃了,那该怎么办?当卡夫卡重新上线时,卡夫卡又如何知道与那个消费者打交道呢?大概会生成一个新的客户端ID,因此它不会具有与以前相同的ID。
答案 0 :(得分:2)
在大多数情况下,这是消费者组的财产。编写使用者时,通常在group.id
参数中指定使用者组。该组ID用于从特殊主题__consumer_offsets
中的/恢复/存储最新偏移,该偏移直接存储在自身的Kafka集群中。消费者组不仅用于偏移量,而且还可以确保每个消费者组仅从单个客户端使用每个分区。
不过,Kafka给您很大的灵活性-因此,如果需要,您可以将偏移量存储在其他位置,并且可以根据所需条件进行偏移。但是在大多数情况下,遵循消费者群体的概念并将偏移量存储在Kafka中是您可以做的最好的事情。
答案 1 :(得分:1)
Kafka根据let newText = NSMutableAttributedString(attributedString: textView.attributedText)
newText.replaceCharacters(in: rangeOfCharactersToReplace, with: newCharacters)
textView.attributedText = newText
识别消费者,这是一个消费者财产,每个消费者都应拥有此财产
一个唯一字符串,用于标识此消费者所属的消费者组。如果使用者通过使用subscription(topic)或基于Kafka的偏移量管理策略使用组管理功能,则必须具有此属性
进入group.id
是一个消费者属性和代理属性,每当消费者从kafka主题消费消息时,它将在下一次开始消费时提交偏移量(这意味着从1到10消耗了该消息列表)从10开始,偏移量可以手动提交或自动提交offset
如果为true,则消费者的补偿将在后台定期提交。
并且每个消费者组都有其偏移量,基于该kafka服务器确定新消费者还是旧消费者已重新启动