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