RocketMQ4.3.X笔记(1):安装使用

消息中间件概述

功能

  1. 应用解耦
  2. 流量削峰
  3. 消息分发

RocketMQ 简介

  1. 阿里出品,2016开源
  2. Java 实现
  3. 高吞吐,2017 年的双十一,峰值TPS 达到5600 万

快速安装使用

下载

  1. 官方提供编译好的Binary版本与源码版本可以下载。详见 官网地址
  2. 要求
  • Windows 也可以简单使用
64bit OS, Linux/Unix/Mac is recommended;
64bit JDK 1.8+;
Maven 3.2.x;
Git;
4g+ free disk for Broker server

安装

  1. 解压
unzip rocketmq-all-4.2.0-bin-release.zip -d ./rocketmq-4.2.0
  1. 简单分析
LICENSE NOTICE README.md benchmark/ bin/ conf/ lib/
  • LICENSE 、NOTICE 和 README.md 包括一些版权声明和功能说明信息;
  • benchmark 里包括运行benchmark 程序的shell 脚本;
  • bin 文件夹里含有各种使
    用RocketMQ 的shell 脚本( Linux 平台)和cmd 脚本( Windows 平台),比如
    常用的启动NameServer 的脚本mqnamesrv ,启动Broker 的脚本mqbroker , 集
    群管理脚本mqadmin 等;
  • conf 文件夹里有一些示例配置文件,包括三种方式的
    broker 配置文件、logback 日志配置文件等
  • lib 文件夹里包括RocketMQ
    各个模块编译成的jar 包,以及RocketMQ 依赖的一些jar 包,比如Netty 、
    FastJSON 等

简单使用

  1. 启动消息队列服务
  • 启动NameServer:
# 启动nameserver
nohup sh bin/mqnamesrv &
tail - f ~/Logs /rocketmqLogs/namesrv.Log
The Name Server boot success . ..

  • 启动Broker :
nohup sh bin/mqbroker -n localhost:9876 &
tail -f ~/Logs/rocketmqLogs/broker.Log
The broker[%s, 192.168.0.233:10911] boot success .. .
  1. 用命令行发送和接收消息
# 发送消息
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
SendResult [sendStatus=SEND OK, msgid= ....

# 接收信息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
ConsumeMessageThread_%d Receive New Messages:[MessageExt . ..

  1. 关闭消息队列
# 关闭NameServer 和Broker:
sh bin/mqshutdown broker
sh bin/mqshutdown namesrv

集群安装

RocketMQ 角色

  1. Producer、Consumer、Broker 和 NameServer。启动RocketMQ 的顺序是先启动NameServer ,再启动Broker ,这时候消
    息队列已经可以提供服务了,想发送消息就使用Producer 来发送,想接收消息
    就使用Consumer 来接收。

  2. 角色关系:为了消除单点故障,增加可靠性或增大吞吐量,可以在多台机器上部署多
    个NameServer 和Broker ,为每个Broker 部署一个或多个Slave
    RocketMQ 角色关系

  3. Topic 和 Message Queue。

  • Topic 是存放消息的容器,不同类型的消息,以不同的Topic 名称来
    区分。所以发送和接收消息前,先创建Topic , 针对某个Topic 发送和接收消
  • 如果一个Topic 要发送和接收的
    数据量非常大, 需要能支持增加并行处理的机器来提高处理速度,这时候一
    个Topic 可以根据需求设置一个或多个Message Queue, Message Queue 类似
    分区或Partition

多机集群配置与部署(双主双从无单点)

修改NameServer、Broker实例 JVM 内存配置【可选】
  1. 主要看机器的配置,如果启动报内存问题,就需要修改。
  2. 修改启动命令 /bin/runserver.sh/bin/runbroker.sh 配置,修改JVM 内存。
  3. 默认配置,在这基础上自己改成自己机器可以承受的即可
# /bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

# /bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"

启动多个NameServer
  1. 两台物理机
10.0.64.106
10.0.64.107
  1. 两台机器上分别启动 NameServer
  • 无单点的NameServer 服务
  • 服务地址为 10.0.64.106:9876;10.0.64.107:9876
nohup sh bin/mqnamesrv &
配置双主双从
  1. 概述
  • 每台机器上都要分别启动一个Master 角色的Broker 和
    一个Slave 角色的Broker ,并互为主备
  • 可以基于RocketMQ 自带的示例配置
    文件(示例配置文件在 conf/2m-2s-sync 目录下)。
  1. 配置
  • 10.0.64.106 机器上的Master Broker 的配置
# broker-a.properties
namesrvAddr=10.0.64.106:9876;10.0.64.107:9876
brokerClusterName=rocketmq-cluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911
storePathRootDir=/data/soft/install/rocketmq-all-4.3.2/data/store-a
  • 10.0.64.107 机器上的Master Broker 的配置
# broker-b.properties
namesrvAddr=10.0.64.106:9876;10.0.64.107:9876
brokerClusterName=rocketmq-cluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911
storePathRootDir=/data/soft/install/rocketmq-all-4.3.2/data/store-b
  • 10.0.64.106 机器上的Slave Broker 的配置(是 10.0.64.107 上Master 的 Slave)
# broker-b-s.properties
namesrvAddr=10.0.64.106:9876;10.0.64.107:9876
brokerClusterName=rocketmq-cluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
listenPort=11011
storePathRootDir=/data/soft/install/rocketmq-all-4.3.2/data/store-b
  • 10.0.64.107 机器上的Slave Broker 的配置(是 10.0.64.106 上Master 的 Slave)
# broker-a-s.properties
namesrvAddr=10.0.64.106:9876;10.0.64.107:9876
brokerClusterName=rocketmq-cluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
listenPort=11011
storePathRootDir=/data/soft/install/rocketmq-all-4.3.2/data/store-a
  1. 启动
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a.properties &
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b-s.properties &
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b.properties &
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a-s.properties &

Web 管理平台(rocketmq - console)

  1. 在github 下载源码,rocketmq - console 地址

  2. 修改下源码配置

  • 配置 NameServer 的地址
  • 不配置可以在启动的时候指定或者启动后的页面维护
$yourpath/rocketmq-console/src/main/resources/application.properties
rocketmq.config.namesrvAddr=10.0.64.106:9876;10.0.64.107:9876
  1. Maven 编译打包
  • 直接运行
mvn spring-boot:run
  • 编译打包
# 编译打包
mvn clean package -Dmaven.test.skip=true

# 运行
nohup java -jar rocketmq-console-ng-1.0.0.jar &

# 指定 NameServer 运行
nohup java -jar rocketmq-console-ng-1.0.0.jar --rocketmq.config.namesrvAddr=10.0.64.106:9876;10.0.64.107:9876 &
  1. 访问,如部署在 10.0.64.106:8080

参考

  1. Apache RocketMQ 官网
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值