前言
Apache Alibaba RocketMQ 是一个消息中间件。消息中间件中有两个角色:消息生产者和消息消费者。RocketMQ 里同样有这两个概念,消息生产者负责创建消息并发送到 RocketMQ 服务器,RocketMQ 服务器会将消息持久化到磁盘,消息消费者从 RocketMQ 服务器拉取消息并提交给应用消费。
官网 http://rocketmq.apache.org/
前提
安装Maven
安装步骤
1. 下载源码
更多版本 https://github.com/apache/rocketmq/releases
方式一 链接: https://pan.baidu.com/s/1vlOaf2PZxQbLU1Dw2zkm6Q 密码: v7bh 下载至/opt目录下
方式二
cd /opt
wget https://github.com/apache/rocketmq/archive/rocketmq-all-4.3.0.tar.gz
2. 解压源码
tar -zxvf rocketmq-all-4.3.0.tar.gz
3. 重命名
mv rocketmq-rocketmq-all-4.3.0/ rocketmq
4. 编译源码
cd rocketmq
mvn -Prelease-all -DskipTests clean install -U
5. 配置环境变量
vi /etc/profile
英文输入状态下 按 i 进入insert模式 新增如下配置
export rocketmq=/opt/rocketmq/distribution/target/apache-rocketmq
export PATH=$PATH:$rocketmq/bin
按esc输入 :wq 保存并退出,编译/etc/profile 使配置生效
source /etc/profile
6. 创建日志目录
mkdir logs
7. 创建broker配置文件 解决项目集成外网无法访问问题
cd distribution/target/apache-rocketmq/bin/
echo "brokerIP1=81.68.243.35" > broker.properties
换成你自己的外网IP
8. 启动 nameserver和 broker
开启防火墙规则9876端口
nohup sh mqnamesrv >/opt/rocketmq/logs/mqnamesrv.log 2>&1 &
nohup sh mqbroker -n localhost:9876 -c /opt/rocketmq/distribution/target/apache-rocketmq/bin/broker.properties >/opt/rocketmq/logs/broker.log 2>&1 &
9. 查看启动状态
cd /opt/rocketmq/logs
cat mqnamesrv.log
cat broker.log
日志内容提示success 即表示启动成功
10. 扩展-停止
sh mqshutdown namesrv
sh mqshutdown broker
web可视化
1. 下载源码
GitHub: https://github.com/apache/rocketmq-externals/tags
链接: https://pan.baidu.com/s/121vAZejrGsZ7abGDJjHAkw 密码: rbhi 放置目录 opt/
2. 解压源码
tar -zxvf rocketmq-console-1.0.0.tar.gz
3. 重命名
mv rocketmq-externals-rocketmq-console-1.0.0 rocketmq-console
4. 修改端口和rocketmq连接
cd rocketmq-console/rocketmq-console/src/main/resources/
vi application.properties
英文输入状态下 按 i 进入insert模式 新增修改如下配置
server.port=8282
rocketmq.config.namesrvAddr=localhost:9876
按esc输入 :wq 保存并退出
5. 编译
cd /opt/rocketmq-console/rocketmq-console/
mvn clean package -Dmaven.test.skip=true
6. 启动
cd target/
java -jar rocketmq-console-ng-1.0.0.jar &
7. 访问
开启防火墙规则 8282端口
问题集锦
1. commit_memory(0x00000006c0000000, 2147483648, 0) failed; error='Cannot allocate memory'
修改runbroker.sh 和 runserver.sh 的内存
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx256m -Xmn128m"