需要装的环境
安装java参考
安装maven
步骤跟安装jdk环境一样
linux-centos7配置maven环境
下载rocketMq
从github上面下载rocketMq
https://github.com/rocketmq/rocketmq
复制连接
在linux上下载
wget https://github.com/rocketmq/rocketmq/archive/master.zip
解压
unzip master.zip
进去rocketmq-master
cd rocketmq-master/
有maven文件进行编译
mvn -Prelease-all -DskipTests clean install -U
去到
cd distribution/target
可看到编译好的apache-rocketmq
将此目录放到/usr/local
里面
mv apache-rocketmq /usr/local
去到/usr/local
换个名字好打点
mv apache-rocketmq rocketmq
去到rocketmq的bin目录下面
启动./mqnamesrv
./mqnamesrv
报了内存不足问题
参考
搭建RocketMQ踩的坑-内存不足
再次启动完成了
启动Broker
启动命令
./mqbroker -n localhost:9876
发现报错内存不足问题
改
打开另一个窗口,更改vim runbroker.sh
改小点
启动Broker,如果有报错,参考
mq启动异常
正常后
开多个窗口看,./tools.sh org.apache.rocketmq.example.quickstart.Producer
为生产者
./tools.sh org.apache.rocketmq.example.quickstart.Consumer
为消费者
生产
./tools.sh org.apache.rocketmq.example.quickstart.Producer
消费
./tools.sh org.apache.rocketmq.example.quickstart.Consumer
当生产者产生消息时,消费会拿到
安装启动常见错误
编译时包无法在mirror上找到 提示502错误
原因: 网络不好或maven仓库服务器出错
重试即可,或者欢迎镜像仓库
发送失败提示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
**原因:**不知道nameserver
在哪儿
在tools
脚本中添加
export NAMESRV_ADDR=localhost:9876
启动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