RocketMQ的模块
2016-11-22 00:00
323 查看
阿里的开源的rocketmq在国内来说还是比较流行的,现在也捐赠给了apache去孵化,希望能最终孵化成功成为顶级项目。在这里主要记录下个人学习rocketmq的一些东西
rmq 是一个maven的project,下载到源码后(3.2.6),直接导入到idea或者eclipse 就可以看到它的所有module,比较重要的moudle是 store,remoteing,namesrv,broker等等
rocketmq-store 模块是rmq最基础的模块,主要功能是消息落盘(同步异步),查询以及主从复制(同步异步),众所周知,rmq采用pageCache/directMemory(java也就是采用nio的mmap方法来将文件直接映射到内存)来提高落盘的效率。在此模块中主要有 Consumequeue(消息的逻辑队列),CommitLog(消息实际存储),IndexFile(消息根据Key做索引)等实体
rocketmq-remoting 网络传输模块,定义和封装了rmq的消息格式以及利用netty封装了网络传输的细节
rocketmq-namesrv name server 模块,类似zk的作用,为什么rmq不用zk做named server,因为zk功能太复杂了,带来更多的运维成本,所以自己封装了轻量级的name server。主要用来做topic的路由以及一些KV配置的管理
rocketmq-broker broker依赖store模块对producer的消息进行落盘和consumer的消息查询
rocketmq-filtersrv rmq设计很奇特的一个模块,主要用来自定义消息过滤
rocketmq-tools rmq提供的一些运维命令,比如updateTopic 等等
其他的一些模块就比较直接了。下图是一些主要模块的依赖图
rmq 是一个maven的project,下载到源码后(3.2.6),直接导入到idea或者eclipse 就可以看到它的所有module,比较重要的moudle是 store,remoteing,namesrv,broker等等
rocketmq-store 模块是rmq最基础的模块,主要功能是消息落盘(同步异步),查询以及主从复制(同步异步),众所周知,rmq采用pageCache/directMemory(java也就是采用nio的mmap方法来将文件直接映射到内存)来提高落盘的效率。在此模块中主要有 Consumequeue(消息的逻辑队列),CommitLog(消息实际存储),IndexFile(消息根据Key做索引)等实体
rocketmq-remoting 网络传输模块,定义和封装了rmq的消息格式以及利用netty封装了网络传输的细节
rocketmq-namesrv name server 模块,类似zk的作用,为什么rmq不用zk做named server,因为zk功能太复杂了,带来更多的运维成本,所以自己封装了轻量级的name server。主要用来做topic的路由以及一些KV配置的管理
rocketmq-broker broker依赖store模块对producer的消息进行落盘和consumer的消息查询
rocketmq-filtersrv rmq设计很奇特的一个模块,主要用来自定义消息过滤
rocketmq-tools rmq提供的一些运维命令,比如updateTopic 等等
其他的一些模块就比较直接了。下图是一些主要模块的依赖图
相关文章推荐
- RocketMQ架构模块解析
- rocketmq源码简析之namesrc模块
- RocketMQ client客户端模块源码分析一(生产者)
- RocketMQ架构模块解析
- RocketMQ架构模块解析
- RocketMQ详解-架构模块解析
- RocketMQ源码解析(1)--代码结构与模块说明
- 模块不能编辑(Can't edit module)
- 写一个Drupal7有关SEO的小模块
- 博客大巴发布模块,如何使用?
- Linxu设备驱动学习之构造和运行模块(菜鸟篇)~~~
- Python模块学习 ---- logging 日志记录
- APP网络模块
- python之路-模块 splinter
- python模块
- Python 3 实现定义跨模块的全局变量和使用
- 使用OpenCV的OpenCL(ocl)模块
- python标准库介绍——15 fileinput 模块详解
- python模块
- perl学习笔记十一-----模块