千家信息网

MQ底层类MQClientInstance和ProcessQueue分析

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,本篇内容介绍了"MQ底层类MQClientInstance和ProcessQueue分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧
千家信息网最后更新 2024年11月24日MQ底层类MQClientInstance和ProcessQueue分析

本篇内容介绍了"MQ底层类MQClientInstance和ProcessQueue分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

基石MQClientInstance

DefaultMQProducerImpl 、DefaultMQPullConsumerImpl、DefaultMQPushConsumerImpl 三个对象的成员变量都包含 同一个成员对象:

private MQClientInstance mQClientFactory;this.mQClientFactory = MQClientManager.getInstance().getAndCreateMQClientInstance(this.defaultMQPushConsumer, this.rpcHook);

MQClientInstance功能如下:

  • MQClientInstance 负责与NameServer 通信进行心跳维持、根据Topic获取Broker地址;

  • MQClientInstance负责与Broker通信进行收发消息、ReBalance;

普通情况下,一个用到RocketMQ的生产端或者消费端,或者说一个JVM进程只要有一个MQClientInstance实例就够了.如果不手动通过setInstanceName设置,这个时候创建的一个或者多个Consumer或者Producer底层使用的都是同一个MQClientInstance实例(默认名字是"DEFAULT").

但是有些情况下只有一个MQClientInstance对象是不够的,比如一个Java程序需要连接两个MQ集群的,从一个集群消费,发送到另外一个集群,一个MQClientInstance对象则无法支持这种场景,此时一定要手动指定不同的InstanceName,底层就会创建两个MQClientInstance对象。

public class MQClientManager {      private static MQClientManager instance = new MQClientManager();    private AtomicInteger factoryIndexGenerator = new AtomicInteger();    private ConcurrentMap factoryTable =        new ConcurrentHashMap();

ClientId的生成规则:

如果同一台机器上有多个服务集成了MQ的客户端,进程ID

MessageQueue在client端的快照类ProcessQueue

路径:org.apache.rocketmq.client.impl.consumer

"MQ底层类MQClientInstance和ProcessQueue分析"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

对象 底层 情况 集群 分析 两个 内容 多个 实例 成员 手动 更多 知识 进程 消费 通信 不同 实用 普通 学有所成 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 外文历史文献免费数据库 数据库能不能存网盘视频 网络安全的股为什么价这么低 网络安全测试电子邮箱 广州汇丰软件开发有限公司地址 公务员面试题网络安全 正规软件开发培训机构 派出所自身开展网络安全检查 统一软件开发服务参考价格 数据库中如何确定排序字段 华三网络安全排行 计算机软件开发股票 网达软件开发软件吗 新兴网络技术及其特点 网络安全问题治理现状分析 软件开发团队流程 学校网络安全工作领导小组及职责 服务器故障断电后恢复 数据库通俗来说是什么 云监控可以管理的服务器 cmdb与数据库的区别 数据库更新所有字段 关于迷你炸我的世界服务器的事情 利用网络技术如何赚钱 列出数据库设计过程的要求和步骤 蓝凌软件开发店 智能软件开发要报哪些税 路由器管理软件开发技术 打开网页经常数据库出错 消防部队网络安全教育ppt
0