44. 源代码解读-RocketMQ-架构
1. 前言
1.1 github源代码
https://github.com/apache/rocketmq
1.2 github其他客户端,比如c++,php
https://github.com/apache/rocketmq-externals
1.3 运行进程
RocketMQ分成两个进程运行
- Namesrv
- Broker
Namesrv,命名服务,主要负责Broker状态管理,Topic路由信息查询等等,端口是9876
Broker负责消息存储,转发,等等,一般占用3个端口
10911 -- Broker主逻辑端口
10912 -- 持久化端口
10909 -- vip端口
另外,Namesrv可以集群配置,各个Namesrv之间是对等的,彼此不通信,不需要互相通信。
Broker可以以单master, 多master,多master多slave等多种方式运行。
2. 代码结构
2.1 代码模块
2.2 模块简介
- rocketmq-broker 主要的业务逻辑,消息收发,主从同步, pagecache等等
- rocketmq-client 客户端接口,比如生产者和消费者。pull和push消费模式,消息负载均衡等等。
- rocketmq-common 公用数据结构等等
- rocketmq-distribution 编译模块,编译输出等
- rocketmq-example 示例,比如生产者和消费者
- rocketmq-fliter
- rocketmq-flitersrv
- rocketmq-logappender 日志相关
- rocketmq-namesrv Namesrv服务
- rocketmq-openmessaging
- rocketmq-remoting 远程调用接口,封装Netty,主要是NettyRemotingServer和NettyRemotingClient
- rocketmq-srvutil server util,提供一些公用的工具方法,比如解析命令行参数
- rocketmq-store 消息存储
- rocketmq-test 测试
- rocketmq-tools 管理工具,比如有名的mqadmin工具
转载于:https://blog.51cto.com/483181/2043857
44. 源代码解读-RocketMQ-架构相关推荐
- QUAKE 3源代码评测:架构
QUAKE 3源代码评测:架构(第1部分,共5部分)>> 由于我在下一个合同前一个星期,我决定完成我的"循环ID".后末日,末日iPhone,Quake1,Quake2 ...
- 软件架构解读与架构师角色培养——希赛嘉宾聊天实录
软件架构解读与架构师角色培养--希赛嘉宾聊天实录[1] [url]http://www.csai.cn[/url] 作者:温昱 来源: ...
- RocketMQ架构
RocketMQ架构 生产者 注册中心(NameServer)中记录着所有Broker集群的信息生产者从NS中通过负载均衡机制获取某一个Broker集群生产者往这个Broker集群的指定队列中投递消息 ...
- jqfactor_analyzer源代码解读02
jqfactor_analyzer单因子分析02 首先jqfactor_analyzer源代码解读01中已经得到了self._clean_factor_data(注意binning_by_group参 ...
- ML:LGBMClassifier、XGBClassifier和CatBoostClassifier的feature_importances_计算方法源代码解读之详细攻略
ML:LGBMClassifier.XGBClassifier和CatBoostClassifier的feature_importances_计算方法源代码解读之详细攻略 目录 LGBMClassif ...
- linux内核奇遇记之md源代码解读之八阵列同步二
linux内核奇遇记之md源代码解读之八阵列同步二 转载请注明出处:http://blog.csdn.net/liumangxiong 在上一小节里讲到启动同步线程: 7824 mddev->s ...
- linux内核奇遇记之md源代码解读之十二raid读写
linux内核奇遇记之md源代码解读之十二raid读写 转载请注明出处:http://blog.csdn.net/liumangxiong 我们都知道,对一个linux块设备来说,都有一个对应的请求队 ...
- 复制linux内核,linux内核写时复制机制源代码解读
作者简介 写时复制技术(一下简称COW)是linux内核比较重要的一种机制,我们都知道:父进程fork子进程的时候,子进程会和父进程会以只读的方式共享所有私有的可写页,当有一方将要写的时候会发生COW ...
- 量化投资之工具篇一:Backtrader从入门到精通(3)-Cerebro源代码解读
前面两篇文章已经一步一步展示了如何使用backtrader以及使用backtrader的一些重要概念和注意事项.但是你要真正灵活地使用backtrader实现自己的策略,还需要了解backtrader ...
最新文章
- 蓝桥杯 扑克序列(全排列)
- Python自然语言处理实战
- 阳光学院计算机科学与技术需要英语四级,给各位想报阳光的朋友一点建议!来自学长的亲身经历!...
- 一. JVM发展史,运行时数据区域,四大引用
- 实现数据库连接池druid的工具类
- 分享一个手游脚本源码
- 自动控制原理第2章——自动控制系统的数学模型(思维导图)
- JSP的表单回显实现
- 【Python爬虫】获取全国客运列车车次及起讫站点位置信息
- Arduino UNO步进电机控制
- Missing Values(缺失值)
- 管路流体仿真matlab,MathWorks 在 Simscape 中新增建模和仿真流体系统功能
- 四分之一管的直径是多少 气管管径对照
- 听说你想去大厂看学妹,带你看看小米前端实习岗面试长啥样?
- JS解决因循环绑定click事件失效
- 想进大厂必须要知道的Web安全问题
- python 采用to_csv保存数据不覆盖原有数据到文件中
- ajax怎样获取json数据,如何使用ajax读取Json中的数据
- visual fortran run-time error can45_64.dll
- 点到线段的最短距离——矢量法
热门文章
- pla3d打印材料密度_口腔修复体制作用3D打印金属粉末的成型工艺与性能控制要点概述...
- 计算 1+2!+3!+4!+...20!=?
- MarkDown语法-使用博客园的markDown编辑
- Netty源码分析第5章(ByteBuf)----第5节: directArena分配缓冲区概述
- 柳传志给年轻人的建议:比起过日子,更要奔日子
- linux设备驱动归纳总结(五):3.操作硬件——IO静态映射【转】
- POJ C++程序设计 编程题#7:字符串排序
- 【Fanvas技术解密】HTML5 canvas实现脏区重绘
- ASP.NET MVC 在控制器中获取某个视图动态的HTML代码
- C# :试玩EventLog