RocketMQ入门基础-环境&整合

  • 查看 Broker Server 启动日志

> tail -f ~/logs/rocketmqlogs/broker.log

在这里插入图片描述

单机情况下安装使用RocketMQ很简单,只需要分别启动NameServer和Broker Server即可!

关闭RockerMQ需要使用下面的命令:

先关闭Broker Server

sh bin/mqshutdown broker

再关闭NameServer

sh bin/mqshutdown namesrv

双机主从高可用搭建


为了消除单机故障,增加可靠性或增大吞吐量,可以在多台服务器上部署多个NameServer和Broker,并为每个Broker部署一个或多个Slave。本节将说明使用两台机器,搭建双主、双从、无单点故障的高可用RocketMQ集群。假设现在有两台服务器,IP地址分别为:192.168.100.43和192.168.100.44,部署架构如下:

在这里插入图片描述

启动多个NameServer 和 Broker

首先需要在两台服务器上分别启动NameServer(nohup sh bin/mqnamesrv &),这样我们就得到了一个无单点的NameServer服务,服务地址为192.168.100.43:9876和192.168.100.44:9876。

然后在两台服务器中RocketMQ的conf目录分别建立两个文件 broker-master.propertiesbroker-slave.properties,下面是不同服务器的配置说明:

  • 192.168.100.43 机器上的broker-master.properties文件:

namesrvAddr = 192.168.100.43:9876;192.168.100.44:9876

brokerClusterName = DefaultCluster

brokerName = broker-a

brokerId = 0

deleteWhen = 04

fileReservedTime = 48

brokerRole = SYNC_MASTER

flushDiskType = ASYNC_FLUSH

listenPort = 10911

storePathRootDir = /app/rocketmq/store-a

  • 192.168.100.43 机器上的broker-slave.properties文件:

namesrvAddr = 192.168.100.43:9876;192.168.100.44:9876

brokerClusterName = DefaultCluster

brokerName = broker-b

brokerId = 1

deleteWhen = 04

fileReservedTime = 48

brokerRole = SLAVE

flushDiskType = ASYNC_FLUSH

listenPort = 11011

storePathRootDir = /app/rocketmq/store-b

  • 192.168.100.44 机器上的broker-master.properties文件:

namesrvAddr = 192.168.100.43:9876;192.168.100.44:9876

brokerClusterName = DefaultCluster

brokerName = broker-b

brokerId = 0

deleteWhen = 04

fileReservedTime = 48

brokerRole = SYNC_MASTER

flushDiskType = ASYNC_FLUSH

listenPort = 10911

storePathRootDir = /app/rocketmq/store-b

  • 192.168.100.44 机器上的broker-slave.properties文件:

namesrvAddr = 192.168.100.43:9876;192.168.100.44:9876

brokerClusterName = DefaultCluster

brokerName = broker-a

brokerId = 1

deleteWhen = 04

fileReservedTime = 48

brokerRole = SLAVE

flushDiskType = ASYNC_FLUSH

listenPort = 11011

storePathRootDir = /app/rocketmq/store-a

然后分别使用如下命令启动两台服务器的主节点和从节点

nohup sh bin/mqbroker -c conf/broker-master.properties &

nohup sh bin/mqbroker -c conf/broker-slave.properties &

这样一个高可用的RockerMQ集群就搭建好了,我们登陆可视化运维管理界面查看集群状态,集群正常启动。

在这里插入图片描述

重要参数说明

本节主要是对Broker的配置文件中用到的参数进行说明

  • namesrvAddr = 192.168.100.43:9876;192.168.100.44:9876

指定NameServer的地址,可以是多个。

  • brokerClusterName = DefaultCluster

Cluster地址,如果集群数量比较多,可以分成多个Cluster,每个Cluster供一个业务群使用。

  • brokerName = broker-a

Broker的名称,Master 和Slave 通过使用相同的 Broker 名称来表明相互关系,以说明某个Slave 是哪个Master 的 Slave。

  • brokerId = 1

一个Master可以有多个Slave,0表示Master,大于0的表示不同Slave的ID。

  • fileReservedTime = 48

在磁盘上保存消息的时长,单位是小时,自动删除超时的消息。

  • deleteWhen = 04

与 fileReservedTime 参数对应,表明在几点做消息删除动作,默认是凌晨4点。

  • brokerRole = SYNC_MASTER

brokerRole的可选参数有SYNC_MASTERASYNC_MASTERSLAVE三种。SYNCASYNC 表示MASTERSLAVE 之间同步消息的机制,SYNC的意思是当SlaveMaster 的消息同步完成后再返回发送成功的状态。

  • flushDiskType = ASYNC_FLUSH

flushDiskType 表示刷盘策略,可选值有ASYNC_FLUSH 和 SYNC_FLUSH两种,分别代表同步刷盘和异步刷盘。同步情况下,消息只有真正写入磁盘才返回成功状态;异步情况下,消息写入page_cache后就返回成功状态。

  • listenPort = 11011

Broker监听的端口,一台服务器启动多个Broker,需要设置不同的监听端口避免端口冲突。

  • storePathRootDir = /app/rocketmq/store-a

存储消息以及配置信息的根目录。

可视化管理平台


RocketMQ可以使用rocketmq-externals作为运维管理平台,Github地址https://github.com/apache/rocketmq-externals,我们需要将源码下载下来后再进行手动编译,过程如下:

  • 下载

从github(https://github.com/apache/rocketmq-externals) 下载RocketMQ可视化管理工具 rocketmq-externals 的源码;

  • 打包

下载完成后切换进rocketmq-console目录,使用maven命令对其打包 mvn clean package -Dmaven.test.skip=true ,打包完成后生成可执行文件rocketmq-console-ng-1.0.1.jar

  • 运行

使用 java -jar rocketmq-console-ng-1.0.1.jar --server.port=8080 --rocketmq.config.namesrvAddr=xxxx.xxx.xxx.xxx:9876 命令启动,这里注意需要设置两个参数:

--server.port 为运行的这个web应用的端口,如果不设置的话默认为8080;

--rocketmq.config.namesrvAddr 为RocketMQ命名服务地址,若NameServer为集群则使用英文 ; 分割

  • 访问

浏览器访问 xxx.xxx.xxx.xxx:8080 进入控制台界面,效果如下

在这里插入图片描述

SpringBoot整合RocketMQ


在SpringBoot中整合RocketMQ主要用到 rocketmq-spring-boot-starter 组件,下面是详细整合过程。

  • 引入组件rocketmq-spring-boot-starter 依赖

org.apache.rocketmq

rocketmq-spring-boot-starter

2.1.0

  • 修改application.yml,添加RocketMQ相关配置

rocketmq:

name-server: 192.168.100.43:9876;192.168.100.44:9876

producer:

group: test-group

总结

这份面试题几乎包含了他在一年内遇到的所有面试题以及答案,甚至包括面试中的细节对话以及语录,可谓是细节到极致,甚至简历优化和怎么投简历更容易得到面试机会也包括在内!也包括教你怎么去获得一些大厂,比如阿里,腾讯的内推名额!

某位名人说过成功是靠99%的汗水和1%的机遇得到的,而你想获得那1%的机遇你首先就得付出99%的汗水!你只有朝着你的目标一步一步坚持不懈的走下去你才能有机会获得成功!

成功只会留给那些有准备的人!

.168.100.43:9876;192.168.100.44:9876

producer:

group: test-group

总结

这份面试题几乎包含了他在一年内遇到的所有面试题以及答案,甚至包括面试中的细节对话以及语录,可谓是细节到极致,甚至简历优化和怎么投简历更容易得到面试机会也包括在内!也包括教你怎么去获得一些大厂,比如阿里,腾讯的内推名额!

某位名人说过成功是靠99%的汗水和1%的机遇得到的,而你想获得那1%的机遇你首先就得付出99%的汗水!你只有朝着你的目标一步一步坚持不懈的走下去你才能有机会获得成功!

成功只会留给那些有准备的人!

[外链图片转存中…(img-AT4xt85A-1714145834553)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值