kafka有持久订阅功能吗?

ppcbkaq5  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(237)

我有兴趣在我的一个项目中使用kafka,但是有一个要求,即当一个订户(使用者)断开连接时,消息传递代理必须保留消息。
我看到jms有这个特性。
网站上说Kafka有耐用性特征。
它和jms一样还是有不同的含义?

x7rlezfr

x7rlezfr1#

Kafka确实支持持久的消费风格模式,但有几种方法可以实现。
首先,你需要理解补偿和消费者地位的概念
kafka为分区中的每条记录维护一个数字偏移量。这个偏移量充当该分区内记录的唯一标识符,还表示使用者在分区中的位置。例如,位于位置5的使用者已使用偏移量为0到4的记录,并且接下来将接收偏移量为5的记录。实际上,有两个与消费者的用户相关的位置概念:消费者的位置给出了下一条记录的偏移量。它将比使用者在该分区中看到的最高偏移量大一个。每次消费者在call to poll(持续时间)中收到消息时,它都会自动前进。
提交位置是安全存储的最后一个偏移量。如果进程失败并重新启动,这就是使用者将恢复到的偏移量。消费者可以周期性地自动提交补偿;或者它可以选择通过调用一个提交api(例如commitsync和commitsync)来手动控制这个提交位置。
偏移量可以存储/保留在kafka服务器或客户端上:
kafka服务器保持/保持使用者位置,在本例中有2个子选项:
使用者显式提交消息消耗
使用者自动提交消息消耗
客户端应用程序保持/保持消费者地位
这都是根据https://kafka.apache.org/22/javadoc/index.html?org/apache/kafka/clients/consumer/kafkaconsumer.html.

owfi6suc

owfi6suc2#

消费者从Kafka(经纪人)那里获取数据。使用者指定它要从何处收集数据的偏移量。如果消费者断开连接并返回,它可以继续留在原来的位置。它还可以从较早的点开始使用数据(更改偏移)。

相关问题