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

 

 

要在Linux搭建RocketMQ环境,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Java Development Kit(JDK)。你可以使用以下命令来检查是否已经安装了JDK: ``` java -version ``` 如果没有安装,请先安装JDK。 2. 下载RocketMQ压缩包。你可以从RocketMQ官方网站或者GitHub仓库上下载最新的稳定版本。 3. 解压RocketMQ压缩包。可以使用以下命令解压: ``` tar zxvf rocketmq-all-x.x.x-bin-release.zip ``` 4. 配置环境变量。打开你的`~/.bashrc`文件(或者其他适用的配置文件),并添加以下内容: ``` export ROCKETMQ_HOME=解压后的RocketMQ目录路径 export PATH=$PATH:$ROCKETMQ_HOME/bin ``` 5. 保存并关闭配置文件。然后执行以下命令以使配置生效: ``` source ~/.bashrc ``` 6. 配置RocketMQ。进入RocketMQ目录,并编辑`conf/broker.conf`和`conf/namesrv.conf`文件,根据你的需求进行配置。主要配置项包括监听IP、端口、存储路径等。 7. 启动Name Server。执行以下命令启动Name Server: ``` nohup sh bin/mqnamesrv & ``` 8. 启动Broker Server。执行以下命令启动Broker Server: ``` nohup sh bin/mqbroker -n localhost:9876 & ``` 9. 验证RocketMQ是否成功启动。你可以通过查看日志文件或者执行以下命令来验证RocketMQ是否成功启动: ``` tail -f ~/logs/rocketmqlogs/namesrv.log tail -f ~/logs/rocketmqlogs/broker.log ``` 现在,你已经成功在Linux搭建RocketMQ环境。你可以使用RocketMQ提供的命令行工具或者编写代码来使用RocketMQ进行消息传递。 请注意,以上步骤仅适用于Linux环境。如果你使用的是其他操作系统,请参考相应的文档进行配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值