Linux教程
  • Linux 教程
  • Linux 命令行
    • Linux 硬件管理
    • Linux 软件管理
    • 查看 Linux 命令帮助信息
    • Linux 系统管理
    • Linux 文件内容查看编辑
    • 命令行的艺术
    • Linux 文件压缩和解压
    • Linux 文件目录管理
    • Linux 用户管理
    • Linux 网络管理
  • 软件安装配置
    • JDK 安装
    • Elastic 技术栈
      • Elastic 技术栈之快速入门
      • Elastic 技术栈之 Logstash 基础
      • Elastic 技术栈之 Kibana
      • Elastic 技术栈之 Filebeat
    • Gitlab 安装
    • Jenkins 安装
    • Kafka 安装部署
    • Maven 安装
    • Nexus 运维
    • Mongodb 安装
    • Nodejs 安装
    • RocketMQ 安装部署
    • Svn 运维
    • Tomcat 安装
    • FastDFS
    • YApi 运维
    • Apollo
    • Nacos 安装配置
  • oh-my-zsh 应用
  • Iptables 应用
  • Linux 典型运维应用
  • Samba 应用
  • Vim 应用
  • Systemd 应用
  • Docker 教程
    • Kubernetes 应用指南
    • service
      • Docker 安装 MySQL
      • Docker 安装 Nginx
    • Docker Cheat Sheet
    • Dockerfile 最佳实践
    • Docker 快速入门
  • Shell 脚本大全
  • CentOS 常规操作运维脚本集合
    • 脚本使用说明
    • 构建、编译项目脚本
    • 服务安装配置
    • Git 脚本工具
Powered by GitBook
On this page
  • 环境要求
  • 下载解压
  • 启动 Name Server
  • 启动 Broker
  • 收发消息
  • 关闭服务器
  • FAQ
  • connect to failed
  • 更多内容

Was this helpful?

  1. 软件安装配置

RocketMQ 安装部署

PreviousNodejs 安装NextSvn 运维

Last updated 5 years ago

Was this helpful?

环境要求

  • 推荐 64 位操作系统:Linux/Unix/Mac

  • 64bit JDK 1.8+

  • Maven 3.2.x

  • Git

下载解压

建议选择 binary 版本。

解压到本地:

> unzip rocketmq-all-4.2.0-source-release.zip
> cd rocketmq-all-4.2.0/

启动 Name Server

> nohup sh bin/mqnamesrv &
> tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

启动 Broker

> nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf &
> tail -f ~/logs/rocketmqlogs/broker.log
The broker[%s, 172.30.30.233:10911] boot success...

收发消息

执行收发消息操作之前,不许告诉客户端命名服务器的位置。在 RocketMQ 中有多种方法来实现这个目的。这里,我们使用最简单的方法——设置环境变量 NAMESRV_ADDR :

> export NAMESRV_ADDR=localhost:9876
> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
SendResult [sendStatus=SEND_OK, msgId= ...

> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
ConsumeMessageThread_%d Receive New Messages: [MessageExt...

关闭服务器

> sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK

> sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

FAQ

connect to failed

启动后,生产者客户端连接 RocketMQ 时报错:

org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to <172.17.0.1:10909> failed
    at org.apache.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.java:357)
    at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessageSync(MQClientAPIImpl.java:343)
    at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:327)
    at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:290)
    at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendKernelImpl(DefaultMQProducerImpl.java:688)
    at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendSelectImpl(DefaultMQProducerImpl.java:901)
    at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:878)
    at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:873)
    at org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:369)
    at com.emrubik.uc.mdm.sync.utils.MdmInit.sendMessage(MdmInit.java:62)
    at com.emrubik.uc.mdm.sync.utils.MdmInit.main(MdmInit.java:2149)

原因:RocketMQ 部署在虚拟机上,内网 ip 为 10.10.30.63,该虚拟机一个 docker0 网卡,ip 为 172.17.0.1。RocketMQ broker 启动时默认使用了 docker0 网卡,生产者客户端无法连接 172.17.0.1,造成以上问题。

解决方案

(1)干掉 docker0 网卡或修改网卡名称

(2)停掉 broker,修改 broker 配置文件,重启 broker。

修改 conf/broker.conf,增加两行来指定启动 broker 的 IP:

namesrvAddr = 10.10.30.63:9876
brokerIP1 = 10.10.30.63

启动时需要指定配置文件

nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf &

更多内容

  • 引申

  • 引用

进入官方下载地址:

https://rocketmq.apache.org/dowloading/releases/,选择合适版本
操作系统、运维部署总结系列
RocketMQ 官方文档
RocketMQ 搭建及刨坑
环境要求
下载解压
启动 Name Server
启动 Broker
收发消息
关闭服务器
FAQ
connect to failed
参考资料