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/#/,控制台无上述错误输出。

 

 

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