说明
请在c盘根目录创建文件夹soft,并将所需要的
软件包
放置到C:\soft\
目录下
1. 请先安装好Ubuntu18.04
2. 安装RocketMQ
官网地址:https://rocketmq.apache.org/docs/quickStart/01quickstart
当前操作版本为rocketmq-all-5.3.0-bin-release.zip
- 2.1 通过一下命令,完成RocketMQ的安装。
sudo su
cd
sudo cp /mnt/c/soft/rocketmq-all-5.3.0-bin-release.zip ~
sudo unzip rocketmq-all-5.3.0-bin-release.zip -d /opt/
sudo mv /opt/rocketmq-all-5.3.0-bin-release /opt/rocketmq
- 2.2 由于本机的内存比较小,没法给broker分配8g内存。
默认8g
。所以我们需要修改配置。将堆内存改为1g。 - 2.3 查询哪些配置文件需要修改
grep -rn -E 'Xms|Xmx|Xmn|MetaspaceSize|MaxMetaspaceSize' /opt/rocketmq/bin/*sh
:查询 /opt/rocketmq/bin目录及子目录下
,所有sh结尾的文件中哪些文件包含了 'Xms' 字符串。
grep -n -E 'Xms|Xmx|Xmn|MetaspaceSize|MaxMetaspaceSize' /opt/rocketmq/bin/*sh
:查询 /opt/rocketmq/bin目录下[不包含子目录]
,所有sh结尾的文件中哪些文件包含了 'Xms' 字符串。
在上图中,我们可以看到broker的内存默认为8g。
参数 | 含义 |
---|---|
-Xms | Jvm初始堆内存大小 |
-Xmx | Jvm最大堆内存大小 |
-Xmn | Jvm年轻代内存大小 |
-XX:MetaspaceSize | Jvm元空间,初始大小 |
-XX:MaxMetaspaceSize | Jvm元空间,最大初始大小 |
在JMM中,方法区是一个逻辑概念,它的具体实现在
JDK1.8之前
为永久代
,JDK1.8之后
为元空间
。
在此,我设置堆内存为1g、年轻代为256m、元空间保持默认。
grep -n -E 'Xms|Xmx|Xmn|MetaspaceSize|MaxMetaspaceSize' /opt/rocketmq/bin/*sh
sudo cp /opt/rocketmq/bin/runbroker.sh /opt/rocketmq/bin/runbroker.sh.bak
sudo cp /opt/rocketmq/bin/runserver.sh /opt/rocketmq/bin/runserver.sh.bak
sudo sed -i 's/-Xms8g/-Xms1g/g; s/-Xmx8g/-Xmx1g/g; s/-Xmn4g/-Xmn256m/g' /opt/rocketmq/bin/runbroker.sh
sudo sed -i 's/-Xms4g/-Xms1g/g; s/-Xmx4g/-Xmx1g/g; s/-Xmn2g/-Xmn256m/g' /opt/rocketmq/bin/runserver.sh
echo 'change memory finished'
grep -n -E 'Xms|Xmx|Xmn|MetaspaceSize|MaxMetaspaceSize' /opt/rocketmq/bin/*sh
3. 安装及配置的完整代码如下
sudo su
cd
sudo cp /mnt/c/soft/rocketmq-all-5.3.0-bin-release.zip ~
sudo unzip -q rocketmq-all-5.3.0-bin-release.zip -d /opt/
sudo mv /opt/rocketmq-all-5.3.0-bin-release /opt/rocketmq
grep -n -E 'Xms|Xmx|Xmn|MetaspaceSize|MaxMetaspaceSize' /opt/rocketmq/bin/*sh
sudo cp /opt/rocketmq/bin/runbroker.sh /opt/rocketmq/bin/runbroker.sh.bak
sudo cp /opt/rocketmq/bin/runserver.sh /opt/rocketmq/bin/runserver.sh.bak
sudo sed -i 's/-Xms8g/-Xms1g/g; s/-Xmx8g/-Xmx1g/g; s/-Xmn4g/-Xmn256m/g' /opt/rocketmq/bin/runbroker.sh
sudo sed -i 's/-Xms4g/-Xms1g/g; s/-Xmx4g/-Xmx1g/g; s/-Xmn2g/-Xmn256m/g' /opt/rocketmq/bin/runserver.sh
grep -n -E 'Xms|Xmx|Xmn|MetaspaceSize|MaxMetaspaceSize' /opt/rocketmq/bin/*sh
echo 'change memory finished'
4. 验证服务
参考官网示例:https://rocketmq.apache.org/docs/quickStart/01quickstart
- Windows Terminal 打开四个窗口,参考 Windows下通过wsl创建Ubuntu环境 - 简书 (jianshu.com)
- Windows Terminal 打开四个窗口,参考 Windows下通过wsl创建Ubuntu环境 - 简书 (jianshu.com)
- 使用
ctrl + b
进入统一输入模式。sudo su
切换到root用户。再次使用命令ctrl + b
退出统一输入模式。
- 使用
窗口一:
Start NameServer
nohup sh /opt/rocketmq/bin/mqnamesrv &
jps -l
窗口二:
Start Broker and Proxy
nohup sh /opt/rocketmq/bin/mqbroker -n localhost:9876 --enable-proxy &
jps -l
窗口三:
Send Messages with tools
export NAMESRV_ADDR=localhost:9876
sh /opt/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
窗口四:
Receive Messages with tools
export NAMESRV_ADDR=localhost:9876
sh /opt/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
执行结果如下图所示: