Producer向Broker发送心跳的作用-知识点
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发送心跳的作用-知识点相关推荐
- kafka消息服务的producer、broker、consumer的配置
2019独角兽企业重金招聘Python工程师标准>>> server.properties配置: server.properties中所有配置参数说明(解释)如下列表: 参数 说明( ...
- mqtt如何发送心跳 安卓_互联网推送服务原理:长连接+心跳机制(MQTT协议)
互联网推送消息的方式很常见,特别是移动互联网上,手机每天都能收到好多推送消息,经过研究发现,这些推送服务的原理都是维护一个长连接(要不不可能达到实时效果),但普通的socket连接对服务器的消耗太大了 ...
- android心跳包作用,Android开发Im总结-5:心跳包
心跳包的作用: TCP长连接本质上不需要心跳包来维持, 大家可以试一试, 让两台电脑连上同一个wifi, 然后让其中一台做服务器, 另一台用一个普通的没有设置KeepAlive的Socket连上服务器 ...
- java之socket的OOBInline和UrgentData和发送心跳包研究
UrgentData可以理解为紧急发送数据方式,如果我们客户端先用write方法写入数据,再用UrgentData发送数据,再去执行flush操作,我们可以得到服务端先打印UrgentData发送的数 ...
- Android Socket通信 发送心跳包 重连
最近项目中,有使用Socket与后端进行通信,然后简单的了解了下Socket使用,大致流程是配置服务端的Ip.端口号,连接,监听数据和发送数据,数据的读取和发送都是以流的形式实现的,然后自己将项目中的 ...
- Nacos通过OpenAPI主动发送心跳失效问题
一. 背景 由于之前使用永久实例时,因为使用的是TCP探测,后端PHP服务又经过Nginx服务,所以当Nginx正常,但是PHP挂掉,或者其它原因不影响时,服务不能正常从服务列表踢除,造成服务失败,所 ...
- RocketMQ给broker发送消息确定Commitlog的写入的位置
问题 有一个疑问,当client给broker发送消息的时候,怎么知道在commitlog的第几个字节开始写呢? 文件格式概述 commitlog消息单元存储结构 commitlog中存储的是客户端发 ...
- 关于android MqttClient消息推送客户端锁屏状态,无法发送心跳包解决方案
1.客户端锁屏状态,无法发送心跳包 解决方案:使用电源锁 客户端:MqttService /** * 设备电源锁. */ private PowerManager.WakeLock mWakeLock ...
- producer send源码_RocketMq系列之Producer顺序消息发送源码分析(四)
有序消息 消息有序指的是可以按照消息的发送顺序来消费. RocketMQ可以严格的保证消息有序.但这个顺序,不是全局顺序,只是分区(queue)顺序. 顺序消息生产者 public static vo ...
最新文章
- 桁架机器人运动视频_桁架机器人的直线定位单元
- 虚拟寄存器,虚拟堆栈与真实寄存器,真实堆栈如何对应
- crontab定时任务语法及应用
- 图解形态学Morphological
- python运行内存不足_python svm内存不足怎么解决?
- python词性标注_自然语言处理基础技术之词性标注
- 物联网与嵌入式是什么关系
- mediatek无线网卡驱动 linux,MediaTek 高速USB网卡驱动适配
- “开会” 引发的思考
- k8s节点NotReady状态
- 【软考软件评测师】2015年下案例分析历年真题
- IDA Pro基本简介
- SAP解决方案(典型业务场景)
- Chrome网页翻译失效的解决方案
- 读取excel,int 数字时间转时间
- 「黑镜」回归!剧中的杀戮机械狗或在两年内来到你身边
- CoralGloba珊瑚跨境的“全银行通道结算”,是创举还是噱头?
- 全国计算机停考通知,紧急停考通知!!!
- 【rtsp流在Web端实时播放】使用 VUE + webrtc-steamer
- excel简繁转换 excel中文简繁转换不在了该怎么办?
热门文章
- hashmap修改对应key的值_死磕 java集合之HashMap源码分析
- linux 认证 转发,一种基于Linux系统实现路由器的portal认证报文转发方法和装置
- php如何获取html的值,请教同一个文件中php如何获取html的变量值?
- mysql备份至cos_宝塔面板网站文件/数据库定时同步备份至腾讯云COS设置
- Python标准库中的shutil
- Spring Boot 前端传json数组,后台接收处理
- java随机输出_用java随机输出汉字
- MysqL的root用户不允许远程连接
- 集群虚拟服务器,Nginx集群
-LVS(Linux虚拟服务器)简介
- oracle ocr掉盘,恢复OCR磁盘组一则