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 模块简介

  1. rocketmq-broker 主要的业务逻辑,消息收发,主从同步, pagecache等等
  2. rocketmq-client 客户端接口,比如生产者和消费者。pull和push消费模式,消息负载均衡等等。
  3. rocketmq-common 公用数据结构等等
  4. rocketmq-distribution 编译模块,编译输出等
  5. rocketmq-example 示例,比如生产者和消费者
  6. rocketmq-fliter
  7. rocketmq-flitersrv
  8. rocketmq-logappender 日志相关
  9. rocketmq-namesrv Namesrv服务
  10. rocketmq-openmessaging
  11. rocketmq-remoting 远程调用接口,封装Netty,主要是NettyRemotingServer和NettyRemotingClient
  12. rocketmq-srvutil server util,提供一些公用的工具方法,比如解析命令行参数
  13. rocketmq-store 消息存储
  14. rocketmq-test 测试
  15. rocketmq-tools 管理工具,比如有名的mqadmin工具

转载于:https://blog.51cto.com/483181/2043857

44. 源代码解读-RocketMQ-架构相关推荐

  1. QUAKE 3源代码评测:架构

    QUAKE 3源代码评测:架构(第1部分,共5部分)>> 由于我在下一个合同前一个星期,我决定完成我的"循环ID".后末日,末日iPhone,Quake1,Quake2 ...

  2. 软件架构解读与架构师角色培养——希赛嘉宾聊天实录

    软件架构解读与架构师角色培养--希赛嘉宾聊天实录[1]                                  [url]http://www.csai.cn[/url] 作者:温昱 来源: ...

  3. RocketMQ架构

    RocketMQ架构 生产者 注册中心(NameServer)中记录着所有Broker集群的信息生产者从NS中通过负载均衡机制获取某一个Broker集群生产者往这个Broker集群的指定队列中投递消息 ...

  4. jqfactor_analyzer源代码解读02

    jqfactor_analyzer单因子分析02 首先jqfactor_analyzer源代码解读01中已经得到了self._clean_factor_data(注意binning_by_group参 ...

  5. ML:LGBMClassifier、XGBClassifier和CatBoostClassifier的feature_importances_计算方法源代码解读之详细攻略

    ML:LGBMClassifier.XGBClassifier和CatBoostClassifier的feature_importances_计算方法源代码解读之详细攻略 目录 LGBMClassif ...

  6. linux内核奇遇记之md源代码解读之八阵列同步二

    linux内核奇遇记之md源代码解读之八阵列同步二 转载请注明出处:http://blog.csdn.net/liumangxiong 在上一小节里讲到启动同步线程: 7824 mddev->s ...

  7. linux内核奇遇记之md源代码解读之十二raid读写

    linux内核奇遇记之md源代码解读之十二raid读写 转载请注明出处:http://blog.csdn.net/liumangxiong 我们都知道,对一个linux块设备来说,都有一个对应的请求队 ...

  8. 复制linux内核,linux内核写时复制机制源代码解读

    作者简介 写时复制技术(一下简称COW)是linux内核比较重要的一种机制,我们都知道:父进程fork子进程的时候,子进程会和父进程会以只读的方式共享所有私有的可写页,当有一方将要写的时候会发生COW ...

  9. 量化投资之工具篇一:Backtrader从入门到精通(3)-Cerebro源代码解读

    前面两篇文章已经一步一步展示了如何使用backtrader以及使用backtrader的一些重要概念和注意事项.但是你要真正灵活地使用backtrader实现自己的策略,还需要了解backtrader ...

最新文章

  1. 蓝桥杯 扑克序列(全排列)
  2. Python自然语言处理实战
  3. 阳光学院计算机科学与技术需要英语四级,给各位想报阳光的朋友一点建议!来自学长的亲身经历!...
  4. 一. JVM发展史,运行时数据区域,四大引用
  5. 实现数据库连接池druid的工具类
  6. 分享一个手游脚本源码
  7. 自动控制原理第2章——自动控制系统的数学模型(思维导图)
  8. JSP的表单回显实现
  9. 【Python爬虫】获取全国客运列车车次及起讫站点位置信息
  10. Arduino UNO步进电机控制
  11. Missing Values(缺失值)
  12. 管路流体仿真matlab,MathWorks 在 Simscape 中新增建模和仿真流体系统功能
  13. 四分之一管的直径是多少 气管管径对照
  14. 听说你想去大厂看学妹,带你看看小米前端实习岗面试长啥样?
  15. JS解决因循环绑定click事件失效
  16. 想进大厂必须要知道的Web安全问题
  17. python 采用to_csv保存数据不覆盖原有数据到文件中
  18. ajax怎样获取json数据,如何使用ajax读取Json中的数据
  19. visual fortran run-time error can45_64.dll
  20. 点到线段的最短距离——矢量法

热门文章

  1. pla3d打印材料密度_口腔修复体制作用3D打印金属粉末的成型工艺与性能控制要点概述...
  2. 计算 1+2!+3!+4!+...20!=?
  3. MarkDown语法-使用博客园的markDown编辑
  4. Netty源码分析第5章(ByteBuf)----第5节: directArena分配缓冲区概述
  5. 柳传志给年轻人的建议:比起过日子,更要奔日子
  6. linux设备驱动归纳总结(五):3.操作硬件——IO静态映射【转】
  7. POJ C++程序设计 编程题#7:字符串排序
  8. 【Fanvas技术解密】HTML5 canvas实现脏区重绘
  9. ASP.NET MVC 在控制器中获取某个视图动态的HTML代码
  10. C# :试玩EventLog