RocketMQ实战教程之RocketMQ安装
这里实例采用centos系统天翼云为例,分别采用传统安装以及Docker安装的方式来进行RocketMQ的安装.JDK8我这边已经安装配置好了,这里就不在赘述.直接进入正题:
传统安装包安装
系统要求
- 64位操作系统,推荐 Linux/Unix/macOS
- 64位 JDK 1.8+ 下载 jdk: https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
快速安装
- 下载RocketMQ安装包上传到虚拟机、服务器上
- 安装unzip: yum install unzip -y
- 使用该命令: unzip rocketmq-all-5.2.0-bin-release.zip 进行安装
1、启动NameServer 安装完RocketMQ包后,我们启动NameServer
### 后台启动namesrv(这里建议前台启动方便看日志报错信息) $ nohup sh bin/mqnamesrv & ### 验证namesrv是否启动成功 $ tail -f ~/logs/rocketmqlogs/namesrv.log The Name Server boot success...
前台启动可以直接看到日志打印成功的信息,后台启动比较麻烦(学习比较方便)
2、启动Broker+Proxy
### 先启动broker指定nameServer的ip端口 $ nohup sh bin/mqbroker -n localhost:9876 --enable-proxy & ### 验证broker是否启动成功, 比如, broker的ip是192.168.1.2 然后名字是broker-a $ tail -f ~/logs/rocketmqlogs/proxy.log The broker[broker-a,192.169.1.2:10911] boot success...
注意:
我这边自己测试时没有出现以下问题,可能是修复了简单的说就是没有报错.
- 启动出现错误:
- Error: VM option 'UseG1GC' is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions.
- Error: Could not create the Java Virtual Machine.
- Error: A fatal exception has occurred. Program will exit.
- 解决方案如下:
vim runbroker.sh
- 启动出现错误:
- Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)
- 解决方案如下:
vim runbroker.sh
工具测试消息收发
在进行工具测试消息收发之前,我们需要告诉客户端NameServer的地址,RocketMQ有多种方式在客户端中设置NameServer地址,这里我们利用环境变量NAMESRV_ADDR
export NAMESRV_ADDR=localhost:9876 ###生产者发送消息 $ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer SendResult [sendStatus=SEND_OK, msgId= ... ###消费者消费消息 export NAMESRV_ADDR=localhost:9876 $ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer ConsumeMessageThread_%d Receive New Messages: [MessageExt...
可以通过先启动消费者,然后再启动生产者发送消息.就可以看到消费者消费的信息
Docker方式安装
由于我自己的服务器之前装过docker了,这里就不展示具体细节截图了,跟着命令安装docker & docker-compose即可
安装 docker & docker-compose
# 安装 docker # 从docker官网下载安装docker脚本 $ curl -fsSL get.docker.com -o get-docker.sh # 使用root用户执行脚本指定阿里云镜像 $ sudo sh get-docker.sh --mirror Aliyun # $ sudo sh get-docker.sh --mirror AzureChinaCloud # 启动 docker $ sudo systemctl enable docker $ sudo systemctl start docker # 安装 docker-compose github 下载: https://github.com/docker/compose/releases $ sudo curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose # 国内用户可以使用以下方式加快下载 $ sudo curl -L https://download.fastgit.org/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose # 修改权限 $ sudo chmod +x /usr/local/bin/docker-compose
docker-compose.yaml
version: '3' services: namesrv: image: apache/rocketmq:5.2.0 container_name: rmqnamesrv ports: - "9876:9876" command: sh mqnamesrv environment: - JAVA_OPT_EXT=-Xms128m -Xmx128m -Xmn128m broker: image: apache/rocketmq:5.2.0 container_name: rmqbroker ports: - "10909:10909" - "10911:10911" depends_on: - namesrv command: sh mqbroker -n namesrv:9876 environment: - JAVA_OPT_EXT=-Xms128m -Xmx128m -Xmn128m - BROKER_ID=0 - AUTO_CREATE_TOPIC_ENABLE=true - AUTO_CREATE_SUBSCRIPTION_GROUP=true
# 启动 $ docker-compose up -d