您的位置:首页 > 其它

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 等等

其他的一些模块就比较直接了。下图是一些主要模块的依赖图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  RocketMQ