zoukankan      html  css  js  c++  java
  • 消费者故障,出现活锁问题如何解决?

    出现活锁的情况是它持续的发送心跳但是没有处理为了预防消费者在 

    这种情况下一直持有分区我们使用 max.poll.interval.ms 活跃检测机制在此 

    基础上如果你调用的 poll 的频率大于最大间隔则客户端将主动地离开组 

    便其他消费者接管该分区发生这种情况时你会看到 offset 提交失败调用 

    commitSync()引发的 CommitFailedException)。这是一种安全机制保障 

    只有活动成员能够提交 offset。所以要留在组中你必须持续调用 poll。

    消费者提供两个配置设置来控制 poll 循环

    max.poll.interval.ms:增大 poll 的间隔可以为消费者提供更多的时间去处理返 

    回的消息调用 poll(long)返回的消息通常返回的消息都是一批)。缺点是此值 

    越大将会延迟组重新平衡

    max.poll.records:此设置限制每次调用 poll 返回的消息数这样可以更容易的 

    预测每次 poll 间隔要处理的最大值通过调整此值可以减少 poll 间隔减少重 

    新平衡分组的 

    对于消息处理时间不可预测地的情况这些选项是不够的处理这种情况的推荐 

    方法是将消息处理移到另一个线程中让消费者继续调用 poll。 但是必须注意确 

    保已提交的 offset 不超过实际位置另外你必须禁用自动提交并只有在线程 

    完成处理后才为记录手动提交偏移量取决于你)。 还要注意你需要 pause  

    停分区不会从 poll 接收到新消息让线程处理完之前返回的消息如果你的处 

    理能力比拉取消息的慢那创建新线程将导致你机器内存溢出)。

    Java Program!
  • 相关阅读:
    查看mysql数据库引擎
    crontab 从nano 转换为 vim
    Linux中,去掉终端显示的当前目录的绝对路径
    nginx 卸载后重新安装/etc/nginx配置文件没了,cannot open /etc/nginx/nginx.conf (No such file or directory)
    rabbitmq 配置
    OSError: mysql_config not found
    No module named 'ConfigParser'
    windows 安装tensorflow
    微服务架构设计
    centOS rabbitmq 安装
  • 原文地址:https://www.cnblogs.com/programb/p/12995975.html
Copyright © 2011-2022 走看看