RocketMQ基本组件
Topic:主题,消息归类的基本单元
Queue:队列,消息存储和传输的实际容器,也是消息的最小存储单元
Producer:生产者,用来构建并传输消息
Consumer:消费者,用来接收并处理消息
ConsumerGroup:消费者组,消费者组是RocketMQ中承载多个消费行为一致的消费者负载均衡分组。和消费者不同,消费者组是一个逻辑概念
NameServer:可以理解成注册中心,负责更新和发现Broker服务。在NameErver的集群中,NameServer与NameServer之间是没有任何通信的,它是无状态的
Broker集群:Broker由一个或多个Broker组成集群,每一个Broker就是一个Kafka实例
主题(Topic)和队列(Queue)
在RocketMQ中要实现消息的发送与订阅,必须首先创建Topic。
因为Topic是RocketMQ进行消息归类的基本单元。通过Topic接收消息生产者发布的消息,并将消息转发给消费者。
比如任务类的消息,就指定好任务类的topic,生产者根据topic把消息发送到队列,消费者订阅这个topic消费消息。
官网地址:https://rocketmq.apache.org/zh/
或者阿里官网下载:https://mirrors.aliyun.com/apache/rocketmq/5.3.4/

上传下载的包的到服务器上,解压后进入bin目录下
jscd /rocketmq/rocketmq-all-5.3.4-bin-release/bin
修改两个文件配置
js[root@k8s-node04 bin]# ls -l *run*
-rwxr-xr-x 1 root root 3332 11月 27 11:32 runbroker.cmd
-rwxr-xr-x 1 root root 4914 11月 27 11:32 runbroker.sh
-rwxr-xr-x 1 root root 2876 11月 27 11:32 runserver.cmd
-rwxr-xr-x 1 root root 4461 11月 27 11:32 runserver.sh

自己电脑修改它内存的大小,默认8G太多了都改成1g
jsvi runbroker.sh

jsvi runserver.sh

先启动注册中心
jsnohup ./mqnamesrv &

然后进入conf目录
jscd /rocketmq/rocketmq-all-5.3.4-bin-release/conf
这类目录是 RocketMQ 官方提供的 Broker 集群部署配置模板,命名规则:m=Master(主节点)、s=Slave(从节点)、async=异步复制、sync=同步复制、noslave=无从节点,用于快速搭建不同架构的 Broker 集群:


jsvi /rocketmq/rocketmq-all-5.3.4-bin-release/conf/2m-2s-sync/broker-a.properties
yml# 1. 指定NameServer地址(必填)
namesrvAddr=192.168.183.120:9876
# 2. 指定Broker内网IP
brokerIP1=192.168.183.120
# 3. Broker名称(固定为broker-a)
brokerName=broker-a
# 4. 主节点标识
brokerId=0
# 5. 消息存储根目录(适配你的RocketMQ根路径)
storePathRootDir=/rocketmq/rocketmq-all-5.3.4-bin-release/store/a
# 6. Broker监听端口
listenPort=10911
# 7. 同步复制
brokerRole=SYNC_MASTER
# 8. 刷盘策略(测试用异步更高效)
flushDiskType=ASYNC_FLUSH
haListenPort=10915
jsvi /rocketmq/rocketmq-all-5.3.4-bin-release/conf/2m-2s-sync/broker-a-s.properties
ymlnamesrvAddr=192.168.183.120:9876
brokerIP1=192.168.183.120
brokerName=broker-a
brokerId=1
storePathRootDir=/rocketmq/rocketmq-all-5.3.4-bin-release/store/a-s
listenPort=10912
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
haListenPort=10916
jsvi /rocketmq/rocketmq-all-5.3.4-bin-release/conf/2m-2s-sync/broker-b.properties
jsnamesrvAddr=192.168.183.120:9876
brokerIP1=192.168.183.120
brokerName=broker-b
brokerId=0
storePathRootDir=/rocketmq/rocketmq-all-5.3.4-bin-release/store/b
listenPort=10913
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
haListenPort=10917
jsvi /rocketmq/rocketmq-all-5.3.4-bin-release/conf/2m-2s-sync/broker-b-s.properties
jsnamesrvAddr=192.168.183.120:9876
brokerIP1=192.168.183.120
brokerName=broker-b
brokerId=1
storePathRootDir=/rocketmq/rocketmq-all-5.3.4-bin-release/store/b-s
listenPort=10914
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
haListenPort=10918
js# 按配置中的路径创建4个存储目录
mkdir -p /rocketmq/rocketmq-all-5.3.4-bin-release/store/{a,a-s,b,b-s}
# 授权避免权限不足
chmod 777 -R /rocketmq/rocketmq-all-5.3.4-bin-release/store
js# 进入bin目录(核心!必须在bin目录执行启动命令)
cd /rocketmq/rocketmq-all-5.3.4-bin-release/bin
# 1. 启动主A
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-a.properties > /tmp/broker-a.log 2>&1 &
# 2. 启动从A(等待10秒)
sleep 10
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-a-s.properties > /tmp/broker-a-s.log 2>&1 &
# 3. 启动主B(等待10秒)
sleep 10
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-b.properties > /tmp/broker-b.log 2>&1 &
# 4. 启动从B(等待10秒)
sleep 10
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-b-s.properties > /tmp/broker-b-s.log 2>&1 &
本文作者:松轩(^U^)
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!