首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用者不知道分区撤销

使用者不知道分区撤销
EN

Stack Overflow用户
提问于 2019-06-14 17:28:35
回答 1查看 439关注 0票数 0

主题名称: testTopic邮件总数#在主题:1分区:8消费者团体名称: Consumer1

使用者语言: Java带分区侦听器的impl基础设施:使4个jvm并行运行(这意味着4个使用者正在以相同的组名运行)

问题:当我开始我的第一次使用者时,Lister回调方法被调用,分区分配被完成。这个消费者开始处理我的邮件。

举个例子,这个使用者持有一条消息MSG-1,而我的处理器正在处理该消息(我有意将20毫秒作为线程等待)。所以,没有提交MSG-1回到主题与偏移.

使用者session.timeout.ms的属性= 15毫秒。

与此同时,消费者2开始了,

该使用者启动、分配分区(正确地调用回叫方法)并且没有使用消息,因为这2条消息由使用者1持有。

现在,从使用者心跳间隔超过和代理认为消费者-1已经死亡,并重新分配在消费者-2(全部)的分区现在调用方法在消费者-2(分配和撤销)。同时,我的会话超时已经过期,msg-1和msg-2返回到主题,并获得了使用者2。

现在,我已经处理了两次味精-1和味精-2.一次来自消费者1和消费者2

我的问题是,

  1. 消费者-1没有被分区撤销的回调方法调用吗?
  2. 在我的线程睡眠完成后(从使用者-1 ),他正在尝试使用分区提交偏移量.我们得到分区重新分配完成..。你不能承诺。这是正确的,但是我怎样才能从使用者那里得到回调方法-1.

-Naresh。

EN

回答 1

Stack Overflow用户

发布于 2019-06-16 20:35:42

消费者-1没有被分区撤销的回调方法调用吗?

使用者只有在参与再平衡时才能得到被撤销的分区回调。但是,因为它超时了,并且确实退出了组,所以它不参与再平衡,代理也不会向使用者发送任何信息。因此,使用者不知道分区被撤销(因此,没有回调)。

在我的线程睡眠完成后(从使用者-1 ),他正在尝试使用分区提交偏移量.我们得到分区重新分配完成..。你不能承诺。这是正确的

不确定we are getting partition re-assignment is done是什么意思:因为使用者没有参与再平衡,所以它仍然认为自己拥有分区。因此,它尝试提交,正如您正确地说的那样,当它退出组时,它是不允许提交的。

但是我怎样才能从消费者那里得到回呼方法-1.

你需要重新加入这个小组,再次打电话给poll(),以恢复健康状态。

一般评论:您的超时配置似乎相当低,在实践中不建议使用如此小的超时。我认为这将是很难得到一个稳定的小组,如此低的暂停,因为最有可能的消费者将有规律的超时,退出小组,并需要重新加入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56602789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档