做外贸的人经常用什么网站,手机制作ppt用什么软件,sdcms网站建设模板,wordpress推送微信文章最近因为一些信创问题#xff0c;要将RabbitMQ替换为RocketMQ#xff0c;因此在此分享一些RocketMQ在Centos7系统上单机部署相关过程。
优缺点
RocketMQ的优点#xff1a; 性能优越#xff1a;RocketMQ在处理大量消息时#xff0c;性能优于RabbitMQ。当面临每秒数万到数…最近因为一些信创问题要将RabbitMQ替换为RocketMQ因此在此分享一些RocketMQ在Centos7系统上单机部署相关过程。
优缺点
RocketMQ的优点 性能优越RocketMQ在处理大量消息时性能优于RabbitMQ。当面临每秒数万到数十万条消息的处理需求时RocketMQ能够提供更好的性能。 灵活的路由配置RocketMQ在生产者和队列之间增加了一个Exchange模块根据配置的路由规则将生产者发出的消息分发到不同的队列中这提供了更大的灵活性。 对在线业务的响应时延做了很多优化RocketMQ对在线业务的响应时延做了很多优化大多数情况下可以做到毫秒级响应。 中文社区活跃对于中文用户来说RocketMQ的中文社区比较活跃源代码易读方便二次开发。 RocketMQ的缺点 大量消息堆积时会导致性能急剧下降。 和其它两种消息队列产品相比性能是最差的。因此如果业务对性能要求特别高就不要选用RocketMQ。 Java开发虽然学习成本相对较低但仍然需要学习相关的开发技术。
单机部署
一、部署RocketMQ
部署JDK 这里不详细描述了网上很多下载依赖
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/修改环境变量
vim /etc/profile
# 在末尾加入下面配置 路径和自己解压的mq路径一直
export ROCKETMQ_HOME/home/rocketmq-all-4.9.4-bin-release
# 使环境变量生效
source /etc/profile启动服务nameserver
## 启动
nohup sh bin/mqnamesrv
## 关闭
sh bin/mqshutdown namesrv指定NameServer地址
vim /etc/profile
# 在末尾加入下面配置 有多个时以分号隔开这个是集群时使用的 mq端口默认是9876
# 192.168.141.101是服务器地址
export NAMESRV_ADDR192.168.141.101:9876
# 使环境变量生效
source /etc/profile修改broker.conf 重要核心配置以后关于mq服务的配置都在这里
vi ./conf/broker.confbrokerClusterName DefaultCluster
brokerName broker-a
brokerId 0
# 这个就是第三三步配置的export NAMESRV_ADDR192.168.141.101:9876 多个以分号分割
namesrvAddr192.168.2.172:9092
#如果是多网卡的机器比如云服务器那么需要在broker.conf中增加brokerIP1属性
#指定所在机器的外网网卡地址
brokerIP1192.168.2.172
#对外服务的监听端口
listenPort10911
deleteWhen 04
fileReservedTime 48
brokerRole ASYNC_MASTER
flushDiskType ASYNC_FLUSH
traceTopicEnabletrue
autoCreateTopicEnabletrue
autoCreateSubscriptionGrouptrue启动broker 进入bin目录 注意 -c 请加上不加后面客户端使用时可能会出问题
#启动
nohup sh bin/mqbroker -c conf/broker.conf
# 关闭
sh bin/mqshutdown broker测试服务
jps# 测试发送消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 测试接收消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer二、部署搭建可视化dashboard 克隆https://github.com/apache/rocketmq-dashboard/tree/release-1.0.0的代码 修改yml中nameServer地址 然后运行或者打包后运行在浏览器中直接访问该服务地址
三、修改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
# 输入下面内容
listenPort9092 #输入这一行
# 使用配置重新启动
nohup sh bin/mqnamesrv -c ./conf/namesrv.properties