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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jquery检测浏览器类型

使用jquery如下代码检测浏览器版本时:出问题,在检测IE浏览器,如果版本是IE11时,会出现 $.browser.msie的返回值是false,$.browser.mozilla的返回值是true,即把IE11检测成火狐了 结局办法 判断IE浏览器用 …

【leetcode❤python】 9. Palindrome Number

#回文数#Method1:将整数转置和原数比较,一样就是回文数;负数不是回文数#这里反转整数时不需要考虑溢出,但不代表如果是C/C等语言也不需要考虑class Solution(object): def isPalindrome(self, x): """ …

Pytorch基础(一) —— tensorboard的应用

一、简介与安装方法 1.1 概念 Tensorboard 是 TensorFlow 的一个工具包,用于展示网络图、张量的指标变化和分布情况,如权重W、偏置B、卷积层数、全连接层数等参数,使用该工具可以方便观察神经网络训练过程,分析学习模型训练的效…

“RuntimeWarning: overflow encountered in ubyte_scalars像素加减运算溢出异常”原因以及解决办法

转载本文请注明详细地址本文介绍了像素点相加减溢出的原因与解决方法 目录 原因: 解决方法: 原因: 这个问题一般是会出现在图像处理像素的加减中,出现的原因是因为图片的像素一般是八位即最大值是256,最小值是0&…

二叉树重建

一、已知先序遍历和中序遍历。求后序遍历。http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId944 依据先序遍历和中序遍历还原二叉树的主要思想: 1、先序遍历序列的第一个元素必然是根节点,能够由此获取二叉树的根节点。 2、依据根节点&…

asyn4j -- java 异步方法调用框架

asyn4j 是一个java异步方法调用框架,基于消费者与生产者模式。包括了异步方法执行,异步回调执行,异步工作缓存模块.支持Spring. 让我们写异步方法不再写很多的相关多线程代码。用asyn4j轻松搞定异步方法调用.提高程序的响应能力.转载于:https…

Pytorch基础(二)—— Transforms详解

一、概念 Transforms是pytorch的图像处理工具包,是torchvision模块下的一个一个类的集合,可以对图像或数据进行格式变换,裁剪,缩放,旋转等,在进行深度学习项目时用途很广泛。下面对Transforms内的常见类的…

图像基本处理算法的简单实现(二)

图像基本处理算法的简单实现(一) 图像基本处理算法的简单实现(二) 4)膨胀腐蚀 属于什么心态学,膨胀、腐蚀、击中/击不中变换、细化…(又晕了T^T)。简单点好像就是集合运算&#xff0…

【WIN10】WIN2D——基本圖形的繪製

DEMO下載地址:http://yunpan.cn/c3iNuHFFAcr8h (提取码:8e48) 先看一個截圖: 繪製了一些基本形狀。 DEMO的繪製代碼都非常簡單,不想在博客裡細說了,看代碼更為清晰些。 可能繪製扇形的代碼有些麻…

python socket 网络编程

socket 套接字:网络接口。 我们在网络上需要传输自己需要的数据,我们在网络上传输数据使用的是网络协议, 而套接字就是我们将数据从本地采用协议传输的接口 socket模型: socket族: #AF_UNIX 被使用在类unix系统之间进行…

C# 并行运算方法简析

一、概述 首先应该明白并行和并发的区别。 并发就是有多个几乎同时到达的线程需要被处理,但只有有限个CPU,所以需要竞争上岗。 并行指有多个CPU资源同时处理多个线程,不存在竞争的概念,可以大量节省运行时间。 二、实现方法 C#…

强烈建议使用国外DNS解析域名,解决访问速度和某些访问故障!

域名解析的基本原理是把域名翻译成IP地址,以便计算机能够进一步通信,传递网址和内容等。  域名劫持就是在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则直接返回假的IP地址或者…

Windows 8 系统快捷键热键列表收集

值得收藏参考的 Windows 8 系统快捷键热键列表收集大全汇总,键盘党效率党必备啊! 相信不少喜欢接触新鲜软件的同学都已经给电脑安装上Windows 8 操作系统了吧!这个系统优秀与否我们暂且不讨论,作为一个键盘党,学习了解…

格式化字符串使用

#codingutf-8 可以指定所需长度的字符串的对齐方式: < &#xff08;默认&#xff09;左对齐 > 右对齐 ^ 中间对齐 &#xff08;只用于数字&#xff09;在小数点后进行补齐 print 1:\t|{0:>10},.format(wangyu) print 2:\t|{0:4.2f}.format(1.1415926) print 3:\t|,…

Python中利用plt显示中文标题解决方案

解决方法 plt.rcParams[font.sans-serif][SimHei] plt.rcParams[axes.unicode_minus] False plt.title(灰度级别频率图) plt.show()

Pytorch基础(三)—— DataSet的应用

一、概念 Pytorch的标准数据集包括很多种类型&#xff0c;如CIFAR&#xff0c;COCO&#xff0c;KITTI&#xff0c;MNIST等&#xff0c;我们可以在官网查看。当然我们也可以做数据集&#xff0c;但需要自己标注。 二、如何调用数据集 一、调用torchvision 在程序中调用torch…

【图像处理】——Python霍夫变换之直线检测(主要是两个函数HoughlinesHoughlinesP)

目录 一、原理(摘自《数字图像处理冈萨雷斯》) 2、Python函数 参数详解 3、效果 4、实

实验五实验报告

实 验 报 告 课程&#xff1a;信息安全系统设计基础 班级&#xff1a; 1353 姓名&#xff1a;魏静静 刘虹辰 文艺 学号&#xff1a;20135302 20135325 20135331 成绩&#xff1a; 指导教师&#xff1a;娄佳鹏 实验日期&#xff1a…

Eclipse快捷键 10个最有用的快捷键

Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码&#xff0c;使得整体的开发效率和质量得到提升。 1. ctrlshiftr&#xff1a;打开资源 这可能是所有快捷键组合中最省时间的了…