RocketMQ-编译安装教程

简介: RocketMQ-编译安装教程

Quick Start


Linux下使用Maven编译源码安装


Rocketmq4.6+需要jdk1.8环境编译和运行

image.png

各版本要求


Version Client Broker NameServer
4.0.0-incubating >=1.7 >=1.8 >=1.8
4.1.0-incubating >=1.6 >=1.8 >=1.8
4.2.0 >=1.6 >=1.8 >=1.8
4.3.x >=1.6 >=1.8 >=1.8
4.4.x >=1.6 >=1.8 >=1.8
4.5.x >=1.6 >=1.8 >=1.8
4.6.x >=1.6 >=1.8 >=1.8


1.从GitHub上下载源码并上传到服务器


image.png

2.在Linux上安装Maven


下载Maven


wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
复制代码



添加阿里云镜像


修改maven/conf目录下的settings.xml

mirrors节点下添加


<mirror> 
    <id>aliyun-maven</id> 
    <mirrorOf>*</mirrorOf> 
    <name>aliyun maven</name> 
    <url>http://maven.aliyun.com/nexus/content/groups/public</url> 
</mirror>
复制代码



配置maven环境变量


修改/etc/profile

export M2_HOME=/usr/local/maven
export PATH=$PATH:$M2_HOME/bin
复制代码



配置java环境变量

export JAVA_HOME="/usr/java/jdk1.8.0_181-amd64"
export CLASS_PATH="$JAVA_HOME/lib"
export PATH=".$PATH:$JAVA_HOME/bin"
复制代码

环境变量修完执行source /etc/profile立即生效



进入rocketmq主目录编译项目

mvn -Prelease-all -DskipTests clean install -U
复制代码




3.启动nameserver


bin目录下执行


./mqnamesrv
复制代码


正常提示

image.png


4.启动Broker

./mqbroker -n localhost:9876
复制代码

正常提示

image.png


5.测试消息发送


使用tool.sh脚本执行测试程序

bin目录下执行


./tools.sh org.apache.rocketmq.example.quickstart.Producer
复制代码

提示如下表示成功

image.png

6.接受消息


./tools.sh org.apache.rocketmq.example.quickstart.Consumer
复制代码




控制台rocketmq-console编译安装


下载

github.com/apache/rock…

中文指南

github.com/apache/rock…

上传到服务器并解压缩



编译

进入rocketmq-console目录

执行编译


mvn clean package -Dmaven.test.skip=true
复制代码



启动

编译成功后在rocketmq-console/target目录下执行rocketmq-console-ng-1.0.1.jar

启动时,直接动态添加nameserver地址或编辑application.properties添加属性

java -jar rocketmq-console-ng-1.0.1.jar --rocketmq.config.namesrvAddr=127.0.0.1:9876
复制代码



启动成功后访问服务器8080端口即可


image.png

pom.xml依赖

<dependency>
        <groupId>org.apache.rocketmq</groupId>
        <artifactId>rocketmq-client</artifactId>
        <version>4.6.1</version>
 </dependency>
复制代码



安装启动常见错误


  1. 编译时包无法在mirror上找到 提示502错误


  1. 原因网络不好或maven仓库服务器出错,重试即可,或者欢迎镜像仓库


  1. 发送失败提示connect to null failed


./tools.sh org.apache.rocketmq.example.quickstart.Producer
22:49:02.470 [main] DEBUG i.n.u.i.l.InternalLoggerFactory - Using SLF4J as the default logging framework
RocketMQLog:WARN No appenders could be found for logger (io.netty.util.internal.PlatformDependent0).
RocketMQLog:WARN Please initialize the logger system properly.
java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to
 null failed
复制代码



  1. 原因:不知道nameserver在哪儿

tools脚本中添加


export NAMESRV_ADDR=localhost:9876
复制代码



  1. 启动broker失败 Cannot allocate memory,原因jvm启动初始化内存分配大于物理内存


[root@node-113b bin]# ./mqbroker -n localhost:9876
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed
; error='Cannot allocate memory' (errno=12)#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/rocketmq/bin/hs_err_pid1997.log
复制代码


修改启动脚本中的jvm参数

runbroker.sh broker

runserver.sh nameserver

默认数值给的都很大,改小即可


JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=100m"
复制代码



启动broker成功但提示:Failed to obtain the host name


[root@node-113b bin]# ./mqbroker -n localhost:9876
22:30:42.307 [main] ERROR RocketmqCommon - Failed to obtain the host name
java.net.UnknownHostException: node-113b: node-113b: No address associated with hostname
  at java.net.InetAddress.getLocalHost(InetAddress.java:1505) ~[na:1.8.0_181]
  at org.apache.rocketmq.common.BrokerConfig.localHostName(BrokerConfig.java:189) [rocketmq-common-4.6.1.jar:4.6.1] at org.apache.rocketmq.common.BrokerConfig.<init>(BrokerConfig.java:38) [rocketmq-common-4.6.1.jar:4.6.1] at org.apache.rocketmq.broker.BrokerStartup.createBrokerController(BrokerStartup.java:110) [rocketmq-broker-4.6.1.jar:4.6.1]  at org.apache.rocketmq.broker.BrokerStartup.main(BrokerStartup.java:58) [rocketmq-broker-4.6.1.jar:4.6.1]Caused by: java.net.UnknownHostException: node-113b: No address associated with hostname
  at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[na:1.8.0_181]
  at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928) ~[na:1.8.0_181]
  at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) ~[na:1.8.0_181]
  at java.net.InetAddress.getLocalHost(InetAddress.java:1500) ~[na:1.8.0_181]
  ... 4 common frames omitted
The broker[DEFAULT_BROKER, 192.168.150.213:10911] boot success. serializeType=JSON and name server is localh
ost:9876
复制代码




原因:无法解析当前的主机名


hosts里添加映射即可

192.168.150.213 node-113b
复制代码


linux日期校准


安装ntpdate


yum install ntpdate
ntpdate ntp1.aliyun.com



相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
8月前
|
Perl
|
9月前
|
传感器 消息中间件 运维
统信UOS系统开发笔记(八):在统信UOS上编译搭建mqtt基础环境(版本使用QMQTT::Clinet)
统信uos使用到mqtt开发,需要重新编译mqtt,本篇描述统信uos20上的mqtt源码编译和环境搭建。这里mqtt版本是使用QMQTT::CLIENT来操作的,这里笔者已知Qt的版本分为两个:一个是QMQTT::QMQTTCLIENT,一个是QTMQTT:CLIENT,对应不同的类和方式,请根据需求选择)
|
Linux Android开发
LINUX下载编译Paho-Mqtt-C
LINUX下载编译Paho-Mqtt-C
91 0
|
消息中间件 缓存 Java
【RocketMq】RocketMq 高版本JDK编译报错问题处理
简单记录RocketMq的JDK8以上版本的编译问题,在RocketMq的github - issue里面讨论还挺多的。
481 0
|
1月前
|
消息中间件 存储 监控
RabbitMQ:分布式系统中的高效消息队列
RabbitMQ:分布式系统中的高效消息队列
|
4月前
|
消息中间件 NoSQL 数据库
一文讲透消息队列RocketMQ实现消费幂等
这篇文章,我们聊聊消息队列中非常重要的最佳实践之一:消费幂等。
一文讲透消息队列RocketMQ实现消费幂等
|
1月前
|
消息中间件 Java
springboot整合消息队列——RabbitMQ
springboot整合消息队列——RabbitMQ
74 0
|
3月前
|
消息中间件 JSON Java
RabbitMQ消息队列
RabbitMQ消息队列
45 0
|
3月前
|
消息中间件
RabbitMQ 实现消息队列延迟
RabbitMQ 实现消息队列延迟
121 0