Linux 搭建單機版RocketMq

 1.下載並解壓

#1.下載rocketmq包
wget http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.6.0/rocketmq-all-4.6.0-bin-release.zip

#2.解壓
unzip rocketmq-all-4.6.0-bin-release.zip

#3.改個名
mv rocketmq-all-4.6.0-bin-release rocketmq

2.修改broker和nameserver的 啓動配置;

#1.修改runbroker.sh(因爲默認是8G,虛擬機我只給了1G運行內存)
vim /usr/local/rocketmq/bin/runbroker.sh

#2.修改runbroker.sh(因爲默認是4G,虛擬機我只給了1G運行內存)
vim /usr/local/rocketmq/bin/runserver.sh

 修改如下:

runserver.sh:(修改對應行)

JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

runbroker.sh:(修改對應行) 

JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"

 3.啓動namesrv和broker

[root@localhost bin]# ps -ef | grep rocketmq
root      15920  12612  0 11:29 pts/1    00:00:00 grep --color=auto rocketmq
[root@localhost bin]# nohup sh mqnamesrv &
[4] 15935
[root@localhost bin]# nohup: 忽略輸入並把輸出追加到"nohup.out"
jps
15942 NamesrvStartup
15962 Jps
[root@localhost bin]# tail -f ~/logs/rocketmqlogs/namesrv.log
2020-01-20 11:29:31 INFO main - Using OpenSSL provider
2020-01-20 11:29:32 INFO main - SSLContext created for server
2020-01-20 11:29:32 INFO main - Try to start service thread:FileWatchService started:false lastThread:null
2020-01-20 11:29:32 INFO NettyEventExecutor - NettyEventExecutor service started
2020-01-20 11:29:32 INFO main - The Name Server boot success. serializeType=JSON
2020-01-20 11:29:32 INFO FileWatchService - FileWatchService service started
2020-01-20 11:29:32 INFO NettyServerCodecThread_1 - NETTY SERVER PIPELINE: channelRegistered 192.168.87.1:62997
2020-01-20 11:29:32 INFO NettyServerCodecThread_1 - NETTY SERVER PIPELINE: channelActive, the channel[192.168.87.1:62997]
2020-01-20 11:29:32 INFO NettyServerCodecThread_1 - NETTY SERVER PIPELINE: channelInactive, the channel[192.168.87.1:62997]
2020-01-20 11:29:32 INFO NettyServerCodecThread_1 - NETTY SERVER PIPELINE: channelUnregistered, the channel[192.168.87.1:62997]
^Z
[5]+  已停止               tail -f ~/logs/rocketmqlogs/namesrv.log
[root@localhost bin]# nohup sh mqbroker -n localhost:9876 &
[6] 16011
[root@localhost bin]# nohup: 忽略輸入並把輸出追加到"nohup.out"
jps
16019 BrokerStartup
15942 NamesrvStartup
16030 Jps
[root@localhost bin]# tail -f ~/logs/rocketmqlogs/broker.log
2020-01-20 11:30:07 INFO main - Try to start service thread:FlushConsumeQueueService started:false lastThread:null
2020-01-20 11:30:07 INFO main - Try to start service thread:FlushRealTimeService started:false lastThread:null
2020-01-20 11:30:07 INFO main - Try to start service thread:StoreStatsService started:false lastThread:null
2020-01-20 11:30:07 INFO main - Try to start service thread:FileWatchService started:false lastThread:null
2020-01-20 11:30:07 INFO FileWatchService - FileWatchService service started
2020-01-20 11:30:07 INFO main - Try to start service thread:PullRequestHoldService started:false lastThread:null
2020-01-20 11:30:07 INFO PullRequestHoldService - PullRequestHoldService service started
2020-01-20 11:30:07 INFO main - Try to start service thread:TransactionalMessageCheckService started:false lastThread:null
2020-01-20 11:30:07 INFO brokerOutApi_thread_1 - register broker[0]to name server localhost:9876 OK
2020-01-20 11:30:07 INFO main - The broker[localhost.localdomain, 172.17.0.1:10911] boot success. serializeType=JSON and name server is localhost:9876
^Z
[7]+  已停止               tail -f ~/logs/rocketmqlogs/broker.log
[root@localhost bin]#

4.rocketmq可視化控制檯

rocketmq默認不帶可視化控制檯,需要去單獨編譯一個工具 https://github.com/apache/rocketmq-externals

ps:我的並未打成jar包部署運行,而是直接用IDEA啓動運行。這裏需要改動application.properties配置文件中的rocketmq.config.namesrvAddr的值,改成自己rocketmq部署服務器的ip地址。至於server.port可改可不改。

ps:啓動運行後,訪問http://localhost:8889/#/,結果控制檯報錯:org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to <172.17.0.1:10909> failed

[2020-01-20 11:05:21.656]  INFO closeChannel: close the connection to remote address[192.168.87.135:9876] result: true
[2020-01-20 11:05:22.655] ERROR Unexpected error occurred in scheduled task.
java.lang.RuntimeException: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to <172.17.0.1:10909> failed
	at com.google.common.base.Throwables.propagate(Throwables.java:160)
	at org.apache.rocketmq.console.task.DashboardCollectTask.fetchBrokerRuntimeStats(DashboardCollectTask.java:219)

解決辦法:

1.關閉broker和namesrv

#關閉broker
sh bin/mqshutdown broker
#
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK

#關閉namesrv
sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

2.vim broker.conf:

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH

#增加部分
namesrvAddr=127.0.0.1:9876
brokerIP1=192.168.87.135

3.重新啓動namesrv和broker

> nohup sh bin/mqnamesrv &
> tail -f ~/logs/rocketmqlogs/namesrv.log
  The Name Server boot success...

> nohup sh bin/mqbroker -n localhost:9876 &
> tail -f ~/logs/rocketmqlogs/broker.log 
  The broker[%s, 172.30.30.233:10911] boot success...

再次訪問http://localhost:8889/#/,控制檯無上述錯誤輸出。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章