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 代码模块

44. 源代码解读-RocketMQ-架构

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工具


     本文转自rongwei84n 51CTO博客,原文链接:http://blog.51cto.com/483181/2043857 ,如需转载请自行联系原作者



相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
4天前
|
消息中间件 存储 JSON
RocketMQ-初体验RocketMQ(05)_RocketMQ架构解读
RocketMQ-初体验RocketMQ(05)_RocketMQ架构解读
43 0
|
3天前
|
消息中间件 存储 Apache
MQ产品使用合集之有RocketMQ arm架构的镜像吗
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
132 1
|
4天前
|
消息中间件 Java RocketMQ
Spring Cloud RocketMQ:构建可靠消息驱动的微服务架构
【4月更文挑战第28天】消息队列在微服务架构中扮演着至关重要的角色,能够实现服务之间的解耦、异步通信以及数据分发。Spring Cloud RocketMQ作为Apache RocketMQ的Spring Cloud集成,为微服务架构提供了可靠的消息传输机制。
30 1
|
4天前
|
消息中间件 存储 数据库
RabbitMQ入门指南(二):架构和管理控制台的使用
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了RabbitMQ架构和管理控制台的使用等内容。
59 0
RabbitMQ入门指南(二):架构和管理控制台的使用
|
4天前
|
消息中间件 存储 Cloud Native
深度剖析 RocketMQ 5.0,架构解析:云原生架构如何支撑多元化场景?
了解 RocketMQ 5.0 的核心概念和架构概览;然后我们会从集群角度出发,从宏观视角学习 RocketMQ 的管控链路、数据链路、客户端和服务端如何交互;学习 RocketMQ 如何实现数据的存储,数据的高可用,如何利用云原生存储进一步提升竞争力。
140152 2
|
4天前
|
消息中间件 缓存 API
|
4天前
|
消息中间件 存储 网络协议
MQ - 09 RabbitMQ的架构设计与实现
MQ - 09 RabbitMQ的架构设计与实现
70 0
|
4天前
|
消息中间件 存储 容灾
9个问答牢记RocketMQ架构
RocketMQ是Java兄弟们常用的消息中间件,虽说常用,但对于RocketMQ架构经常忘记。究其原因就2点:忙于业务开发然后长时间不看则忘了、不理解架构设计的根本原因记不牢。本文用大白话描述架构设计过程,牢记RocketMQ架构。
9个问答牢记RocketMQ架构
|
4天前
|
消息中间件 Java Apache
使用Idea部署RocketMq 源代码(4.9.4)
使用Idea部署RocketMq 源代码(4.9.4)
72 0
使用Idea部署RocketMq 源代码(4.9.4)
|
8月前
|
消息中间件 存储 监控
RocketMQ 的基本概念、架构设计、特点以及适用场景
RocketMQ 的基本概念、架构设计、特点以及适用场景
648 0
RocketMQ 的基本概念、架构设计、特点以及适用场景