RocketMQ(1)---架构原理及环境搭建
一、架构简述
RocketMQ阿里开源的一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性, 万亿级容量和灵活的可伸缩性。跟其它中间件相比,RocketMQ的特点是纯JAVA实现,在发生宕机和其它故障时消息丢失率更低。
它由四个部分组成:nameserver,broker,生产者和消费者。它们中的每一个都可以水平扩展,而没有单个故障点。
Nameserver:提供轻量级的服务发现和路由。生产者和消费者通过nameserver获取broker信息。它几乎是无状态的,nameserver结点之间没有任何的数据同步,broker注册信息时会注册到每一个nameserver结点上面,所以每个nameserver节点都记录了完整broker信息,提供相应的读写服务,并支持快速的存储扩展。
Broker:通过提供轻量级的topic和queue机制来存储消息。与nameserver中的每个节点建立长连接,定时注册topic等信息到nameserver上面。broker一般都是主从模式,因为消息是真实存储消息的地方,避免一个结点挂了,导致这个节点数据全部丢失。
Producer:与nameserver集群中的一个结点建立长连接,定期的拉取broker 的topic路由信息,再将消息发送到对应broker的topic上面
Consumer:与nameserver集群中的一个结点建立长连接,定期的拉取broker 的topic路由信息,再去消费对应broker的topic信息
二、环境搭建
1.官网下载:http://rocketmq.apache.org/release_notes/release-notes-4.7.0/
2.解压 unzip rocketmq-all-4.7.0-bin-release.zip
3.修改启动参数配置。默认的jvm参数内存设置特别大,如果自己机器不行的话需要手动改下bin目录下的启动参数文件:runbroker.sh 和runserver.sh文件 我的虚拟机内存分配不大,改成256m 256m 128m
这是默认的
4.启动nameserver: nohup sh mqnamesrv ‐n 192.168.0.67:9876 & (将日志输出当前目录的nohub.out文件,方便查看启动日志,ip是当前机器的ip)
5.启动broker:nohup sh mqbroker ‐n 192.168.0.67:9876 autoCreateTopicEnable=true & (autoCreateTopicEnable=true 自动创建topic,如果不设置true的话,生产者发送消息的时候如果没有topic就会发送失败,需要提前把topic创建好,设置true会在发送时自动创建topic,192.168.0.67:9876 是name server)
也可以使用配置文件启动broker:nohup sh mqbroker ‐n 192.168.0.67:9876 ‐c conf/broker.conf &
简单看下默认的配置文件中的一些参数:
#集群名字
brokerClusterName = DefaultCluster
#broker名字,集群中主从都要用这个名字,才会组成一个集群
brokerName = broker-a
#id为0的是master 非0的slava
brokerId = 0
#消息处理时间,凌晨4点
deleteWhen = 04
#消息保存时间默认48小时,48小时之后的凌晨4点就会清理
fileReservedTime = 48
#集群主从之间数据同步方式
#异步只需要发到master成功就返回客户端段成功,性能高,但是如果master挂了 slave还未同步就会丢失消息。根据自身业务场景选择合适方式
brokerRole = ASYNC_MASTER
#消息刷盘机制,和主从数据同步类似,同步就是说需要写进磁盘了才返回成功。异步就是写进内存了就返回成功,后面再去落盘。
flushDiskType = ASYNC_FLUSH
#自动创建topic
autoCreateTopicEnable=true
使用配置文件启动:nohup sh bin/mqbroker ‐n 192.168.0.67:9876 -c conf/broker.conf &
broker 192.168.0.67:10911关联的nameserver是192.168.0.67:9876
至此一个单机的rocketMQ的环境就搭建好了 正常退出: sh mqshutdown broker 和 sh mqshutdown namesrv
测试下消息发送,使用rocketMQ提供的测试脚本:
export NAMESRV_ADDR=192.168.0.67:9876
生产者脚本

消费消息:
RocketMQ(1)---架构原理及环境搭建的更多相关文章
- Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍
系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...
- RocketMQ(1)-架构原理
RocketMQ(1)-架构原理 RocketMQ是阿里开源的分布式消息中间件,跟其它中间件相比,RocketMQ的特点是纯JAVA实现:集群和HA实现相对简单:在发生宕机和其它故障时消息丢失率更低. ...
- 你懂RocketMQ 的架构原理吗?
前言 前面我们跟大家聊了聊什么是消息中间件,以及哪些场景使用哪些消息中间件更加合适. 我们了解到RocketMQ是java语言开发的,我们能更深入的阅读源码了解它的底层原理,而且它具有优秀的消息中间件 ...
- RocketMQ在Windows平台下环境搭建
一. 环境搭建 需要jdk1.6(以上) 64bit, maven, eclipse 二. RocketMQ项目下载 项目地址:https://github.com/alibaba/RocketM ...
- RocketMQ在linux平台下环境搭建
RocketMQ在linux下部署运行和window类似,只不过启动namesrv和broker是通过mqnamesrv.sh 和 mqbroker.sh来启动的. 一. 环境搭建 需要jdk1.6 ...
- 基于Selenium2+Java的UI自动化(1) - 原理和环境搭建
一.Selenium2的原理 Selenium1是thoughtworks公司的一个产品经理,为了解决重复烦躁的验收工作,写的一个自动化测试工具,其原理是用JS注入的方 式来模拟人工的操作,但是由于J ...
- springmvc工作原理和环境搭建
SpringMVC工作原理 上面的是springMVC的工作原理图: 1.客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServle ...
- monkey 原理,环境搭建、命令详解
一.monkey测试的相关的原理 monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常.当Monkey程序在模拟器或设备运行的时候, ...
- 1.appium工作原理及环境搭建
1.appium: 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用. 2.工作原理: 3.搭建appium环境: (1)安装python和nod ...
随机推荐
- 项目工程化之git提交规范以及 CHANGELOG生成
事先声明,本文是参考了其他大神的博客之后自己尝试的记录,具体可以参考如下 链接 先说说git 提交规范把,这里基本都是这个工具 cz-customizable 1,安装 npm install cz- ...
- vue-cli3区分开发和生产环境
vue-cli3出来很久了,之前一直使用vue-cli2的配置,并且区分了生产和开发环境,自己的理解,环境分两大类,开发环境 和生产环境,最近升级到了vue-cli4当然改动并不大. 升级的主要原因嘛 ...
- 【SocketIoClientDotNet】Nuget包安装问题
问题: Nuget安装[SocketIoClientDotNet]失败 错误信息: Operation failed Expected 1 export(s) with contract name & ...
- [微信营销企划之路]001.环境搭建(XAMPP+WeiPHP)
引言 本系列适合0基础的人员,因为我们就是从0开始的,此系列记录我们步入微信营销企划并进行开发的一些经验分享,望与君共勉!作为刚刚踏入微信队伍中的新人的我们,如果有什么不对的地方,还望不吝赐教. 在开 ...
- webmin RCE漏洞利用及分析
Webmin是目前功能最强大的基于Web的Unix系统管理工具.管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作. 利用条件:webmin <= 1.910 原因:官网 Sou ...
- Vim入门教程——转
简书: https://www.jianshu.com/p/bcbe916f97e1
- vue-cli4 + TS构建新项目
1. 如果你之前没有安装vue-cli,可以通过如下命令进行安装: npm install -g @vue/cli yarn global add @vue/cli 2. 创建vue项目 vue cr ...
- PAT1034 有理数四则运算 (20分)
1034 有理数四则运算 (20分) 本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全 ...
- Java实现 LeetCode 673 最长递增子序列的个数(递推)
673. 最长递增子序列的个数 给定一个未排序的整数数组,找到最长递增子序列的个数. 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, ...
- 第十届蓝桥杯JavaB组省赛真题
试题 A: 组队 本题总分:5 分 [问题描述] 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容. 每位球员担任 1 号位至 5 号位时的评分如下表所示. ...