producer发送心跳到broker有什么作用?

通过搜索broker模块的源码暂时发现一个作用(也许还有其他的用途,暂时没时间仔细看): broker需要回查事务消息状态的情况下,broker会选择一个可用的channel对应的producer发送请求,所以producer需要发送心跳告诉Broker自己还活着。

如何找到这块代码的呢?
1、在broker模块中搜索heartbeat,发现了ClientManageProcessor#heartBeat方法;
2、heartBeat方法中发现了ProducerManager#registerProducer
3、查看ProducerManager中的方法,发现getAvaliableChannel比较能体现心跳的作用
4、搜索项目中哪些地方使用了ProducerManager#getAvaliableChannel,最后发现了AbstractTransactionalMessageCheckListener#sendCheckMessage

  // AbstractTransactionalMessageCheckListener#sendCheckMessagepublic void sendCheckMessage(MessageExt msgExt) throws Exception {...Channel channel = brokerController.getProducerManager().getAvaliableChannel(groupId);if (channel != null) {brokerController.getBroker2Client().checkProducerTransactionState(groupId, channel, checkTransactionStateRequestHeader, msgExt);} else {LOGGER.warn("Check transaction failed, channel is null. groupId={}", groupId);}}

Producer向Broker发送心跳的作用-知识点相关推荐

  1. kafka消息服务的producer、broker、consumer的配置

    2019独角兽企业重金招聘Python工程师标准>>> server.properties配置: server.properties中所有配置参数说明(解释)如下列表: 参数 说明( ...

  2. mqtt如何发送心跳 安卓_互联网推送服务原理:长连接+心跳机制(MQTT协议)

    互联网推送消息的方式很常见,特别是移动互联网上,手机每天都能收到好多推送消息,经过研究发现,这些推送服务的原理都是维护一个长连接(要不不可能达到实时效果),但普通的socket连接对服务器的消耗太大了 ...

  3. android心跳包作用,Android开发Im总结-5:心跳包

    心跳包的作用: TCP长连接本质上不需要心跳包来维持, 大家可以试一试, 让两台电脑连上同一个wifi, 然后让其中一台做服务器, 另一台用一个普通的没有设置KeepAlive的Socket连上服务器 ...

  4. java之socket的OOBInline和UrgentData和发送心跳包研究

    UrgentData可以理解为紧急发送数据方式,如果我们客户端先用write方法写入数据,再用UrgentData发送数据,再去执行flush操作,我们可以得到服务端先打印UrgentData发送的数 ...

  5. Android Socket通信 发送心跳包 重连

    最近项目中,有使用Socket与后端进行通信,然后简单的了解了下Socket使用,大致流程是配置服务端的Ip.端口号,连接,监听数据和发送数据,数据的读取和发送都是以流的形式实现的,然后自己将项目中的 ...

  6. Nacos通过OpenAPI主动发送心跳失效问题

    一. 背景 由于之前使用永久实例时,因为使用的是TCP探测,后端PHP服务又经过Nginx服务,所以当Nginx正常,但是PHP挂掉,或者其它原因不影响时,服务不能正常从服务列表踢除,造成服务失败,所 ...

  7. RocketMQ给broker发送消息确定Commitlog的写入的位置

    问题 有一个疑问,当client给broker发送消息的时候,怎么知道在commitlog的第几个字节开始写呢? 文件格式概述 commitlog消息单元存储结构 commitlog中存储的是客户端发 ...

  8. 关于android MqttClient消息推送客户端锁屏状态,无法发送心跳包解决方案

    1.客户端锁屏状态,无法发送心跳包 解决方案:使用电源锁 客户端:MqttService /** * 设备电源锁. */ private PowerManager.WakeLock mWakeLock ...

  9. producer send源码_RocketMq系列之Producer顺序消息发送源码分析(四)

    有序消息 消息有序指的是可以按照消息的发送顺序来消费. RocketMQ可以严格的保证消息有序.但这个顺序,不是全局顺序,只是分区(queue)顺序. 顺序消息生产者 public static vo ...

最新文章

  1. 桁架机器人运动视频_桁架机器人的直线定位单元
  2. 虚拟寄存器,虚拟堆栈与真实寄存器,真实堆栈如何对应
  3. crontab定时任务语法及应用
  4. 图解形态学Morphological
  5. python运行内存不足_python svm内存不足怎么解决?
  6. python词性标注_自然语言处理基础技术之词性标注
  7. 物联网与嵌入式是什么关系
  8. mediatek无线网卡驱动 linux,MediaTek 高速USB网卡驱动适配
  9. “开会” 引发的思考
  10. k8s节点NotReady状态
  11. 【软考软件评测师】2015年下案例分析历年真题
  12. IDA Pro基本简介
  13. SAP解决方案(典型业务场景)
  14. Chrome网页翻译失效的解决方案
  15. 读取excel,int 数字时间转时间
  16. 「黑镜」回归!剧中的杀戮机械狗或在两年内来到你身边
  17. CoralGloba珊瑚跨境的“全银行通道结算”,是创举还是噱头?
  18. 全国计算机停考通知,紧急停考通知!!!
  19. 【rtsp流在Web端实时播放】使用 VUE + webrtc-steamer
  20. excel简繁转换 excel中文简繁转换不在了该怎么办?

热门文章

  1. hashmap修改对应key的值_死磕 java集合之HashMap源码分析
  2. linux 认证 转发,一种基于Linux系统实现路由器的portal认证报文转发方法和装置
  3. php如何获取html的值,请教同一个文件中php如何获取html的变量值?
  4. mysql备份至cos_宝塔面板网站文件/数据库定时同步备份至腾讯云COS设置
  5. Python标准库中的shutil
  6. Spring Boot 前端传json数组,后台接收处理
  7. java随机输出_用java随机输出汉字
  8. MysqL的root用户不允许远程连接
  9. 集群虚拟服务器,Nginx集群 -LVS(Linux虚拟服务器)简介
  10. oracle ocr掉盘,恢复OCR磁盘组一则