当前位置: 首页 > news >正文

RocketMQ在Centos7系统上单机部署

最近因为一些信创问题,要将RabbitMQ替换为RocketMQ,因此在此分享一些RocketMQ在Centos7系统上单机部署相关过程。

优缺点

RocketMQ的优点
性能优越:RocketMQ在处理大量消息时,性能优于RabbitMQ。当面临每秒数万到数十万条消息的处理需求时,RocketMQ能够提供更好的性能。
灵活的路由配置:RocketMQ在生产者和队列之间增加了一个Exchange模块,根据配置的路由规则将生产者发出的消息分发到不同的队列中,这提供了更大的灵活性。
对在线业务的响应时延做了很多优化:RocketMQ对在线业务的响应时延做了很多优化,大多数情况下可以做到毫秒级响应。
中文社区活跃:对于中文用户来说,RocketMQ的中文社区比较活跃,源代码易读,方便二次开发。
RocketMQ的缺点
大量消息堆积时,会导致性能急剧下降。
和其它两种消息队列产品相比,性能是最差的。因此,如果业务对性能要求特别高,就不要选用RocketMQ。
Java开发,虽然学习成本相对较低,但仍然需要学习相关的开发技术。

单机部署

一、部署RocketMQ

  1. 部署JDK
    这里不详细描述了,网上很多
  2. 下载依赖
wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip
cd ./rocketmq-all-4.9.4-bin-release/
  1. 修改环境变量
vim /etc/profile
# 在末尾加入下面配置 路径和自己解压的mq路径一直 
export ROCKETMQ_HOME=/home/rocketmq-all-4.9.4-bin-release
# 使环境变量生效
source /etc/profile
  1. 启动服务nameserver
## 启动
nohup sh bin/mqnamesrv &
## 关闭
sh bin/mqshutdown namesrv
  1. 指定NameServer地址
vim /etc/profile
# 在末尾加入下面配置 有多个时以分号隔开,这个是集群时使用的 mq端口默认是9876 
# 192.168.141.101是服务器地址
export NAMESRV_ADDR=192.168.141.101:9876
# 使环境变量生效
source /etc/profile
  1. 修改broker.conf
    重要,核心配置,以后关于mq服务的配置都在这里
vi ./conf/broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
# 这个就是第三三步配置的export NAMESRV_ADDR=192.168.141.101:9876 多个以分号分割
namesrvAddr=192.168.2.172:9092
#如果是多网卡的机器,比如云服务器,那么需要在broker.conf中增加brokerIP1属性,
#指定所在机器的外网网卡地址
brokerIP1=192.168.2.172
#对外服务的监听端口
listenPort=10911
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
traceTopicEnable=true
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
  1. 启动broker
    进入bin目录
    注意 -c 请加上,不加后面客户端使用时可能会出问题
#启动
nohup sh  bin/mqbroker -c conf/broker.conf &
# 关闭
sh bin/mqshutdown broker
  1. 测试服务
jps

部署完成

# 测试发送消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 测试接收消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

二、部署搭建可视化dashboard

  1. 克隆https://github.com/apache/rocketmq-dashboard/tree/release-1.0.0的代码

  2. 修改yml中nameServer地址
    修改地址

  3. 然后运行或者打包后运行,在浏览器中直接访问该服务地址
    面板

三、修改nameserver端口号

启动nameserver,出现以下问题时是端口被占用

java.net.BindException: Address already in useat sun.nio.ch.Net.bind0(Native Method)at sun.nio.ch.Net.bind(Net.java:433)at sun.nio.ch.Net.bind(Net.java:425)at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134)at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:562)at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334)at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506)

修改端口号方法如下:

cd ./conf
## 创建文件
vi namesrv.properties
# 输入下面内容
listenPort=9092  #输入这一行
# 使用配置重新启动
nohup sh bin/mqnamesrv -c ./conf/namesrv.properties &
http://www.lryc.cn/news/372560.html

相关文章:

  • Vue37-非单文件组件
  • CSS实现经典打字小游戏《生死时速》
  • 推箱子-小游戏
  • AI数字人的开源解决方案
  • java写一个验证码
  • 【星海随笔】ELK优化
  • SQL Auto Increment
  • 网络安全练气篇——PHP编程语言基础
  • LabVIEW程序内存泄漏分析与解决方案
  • JVM垃圾回收器介绍
  • subprocess隐藏cmd窗口
  • 编程前端看什么书比较好:深入解析与推荐
  • HarmonyOS(36) DevEco Studio 配置debug和release
  • PHP CGI Windows平台远程代码执行漏洞(CVE-2024-4577)复现
  • WHAT - React 学习系列(二)
  • Java 反射机制 -- Java 语言反射的概述、核心类与高级应用
  • 【Python入门与进阶】Jupyter Notebook配置与优化
  • DataCap 自定义 File 转换器
  • ARM32开发--IIC原理
  • 列表、集合、字典的相关练习
  • 填报志愿选大学专业,文科生如何选专业?
  • 如何实现跨域
  • 从零开始利用树莓派+扬声器,实现简单的蓝牙音箱,手机连接放歌
  • 今年的就业环境不容乐观,你想好怎么应对了吗
  • 测试 halcon measure_projection 算子
  • 网络安全岗位必须知道到:高性能抓取,多线程,异步逆向分析(Js逆向破解/APP逆向破解)反爬原理和解决方法,不然你的Python会有Bug
  • lua网站开发中如何制作自定义模块
  • 线性规划问题——单纯形算法
  • ADS基础教程20 - 电磁仿真(EM)参数化
  • NAND flash测试-雷龙发展