Apache RocketMQ如何实现单机部署

58次阅读
没有评论

共计 2349 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章主要介绍 Apache RocketMQ 如何实现单机部署,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

下载程序包

直接使用一般就下载已经编译好的二进制文件就好了, 下载好以后

unzip rocketmq-all-4.3.0-bin-release.zip
cd rocketmq-all-4.3.0-bin-release/

启动 name server

nohup sh bin/mqnamesrv  

tail 一下日志看看是否已经启动成功
tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success… 

启动 Broker

nohup sh bin/mqbroker -n localhost:9876  

tail 一下日志看看是否已经启动成功
tail -f ~/logs/rocketmqlogs/broker.log
The broker[%s, 172.30.30.233:10911] boot success… 

发送消息和接收消息

为了简单测试下,在发送 / 接收消息之前我们需要设置 NAMESRV_ADDR 环境变量
export NAMESRV_ADDR=localhost:9876

发送消息,测试用例中的方式是使用 for 循环发送了 1000 条消息
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
SendResult [sendStatus=SEND_OK, msgId= … 

关闭服务

 sh bin/mqshutdown broker 
The mqbroker(36695) is running... 
Send shutdown request to mqbroker(36695) OK
 sh bin/mqshutdown namesrv 
The mqnamesrv(36664) is running... 
Send shutdown request to mqnamesrv(36664) OK

到此,我们已经完成了一个简单的部署以及消息的发送和接收, 但是这只是在内网下进行的收发消息。

FAQ 怎么修改 name server 和 broker 的启动内存?

一开始按照官网的步骤来操作往往会直接启动不起来,提示内存不足,那是因为 name server 和 broker 默认的启动 JVM 内存是 4G,而内存在不够的情况下自然就启动失败了。

这时候需要修改 name server 和 broker 的启动内存参数,
broker 的启动内存参数在 runbroker.sh 下修改,windows 下则是 runbroker.cmd
name server 的启动内存参数是在 runserver.sh 下修改,windows 下则是 runserver.cmd

需要配置外网访问要怎么配置呢?

在网上见过很多同学在配置外网访问的时候出现问题,得到的提示大多是 No Topic Route Info
这种提示一般都是连接失败了,
1.broker 没有允许自动创建 topic,且发送消息对应的 topic 不存在
2.broker 没有正确的连接到 name server
3.product 没有正确的连接到 name server

对于情况 1,在启动 broker 的时候添加 autoCreateTopicEnable=true 参数就好了。

情况 2 呢,有可能是 name server 不存在或者是端口冲突,具体可以看日志的报错原因。

情况 3 的话, 一般是端口原因,如果在服务器上本地收发消息都正常但是到了用客户端 sdk 发消息的时候失败了可以首先查看一下端口本地 ping 服务器的 9876 端口和 10911 端口是否正常, 如果正常可以关闭 vip 通道再次尝试, 以 JAVA 客户端的话就是下面这样
生产者关闭 VIP 通道:

producer.setVipChannelEnabled(false);

消费者关闭 VIP 通道:

consumer.setVipChannelEnabled(false);

关闭 VIP 通道为什么就可以了呢,是因为 VIP 通道占用了一个端口,10909 端口, 而服务器的 10909 端口没有对外开放,所以导致失败了。

配置文件

这是我的 broker.properties 配置文件

brokerClusterName = DefaultCluster 
brokerName = broker-a 
brokerId = 0 
deleteWhen = 04 
fileReservedTime = 48 
brokerRole = ASYNC_MASTER 
flushDiskType = ASYNC_FLUSH 
brokerIP1=172.17.59.146 
brokerIP2=172.17.59.146 
namesrvAddr=172.17.59.146:5776 
autoCreateTopicEnable=true

因为我没有使用默认的 9876 端口, 所以也有一个 name server 的配置文件,namesrv.conf

listenPort=5776

也可以直接下载我的 broker.properties 和 namesrv.conf

使用自己的配置文件启动 name server 和 broker 的时候都是添加一个指定文件的参数 -c 文件路径

以上是“Apache RocketMQ 如何实现单机部署”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2349字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)