linux (阿里云 CentOS7) 中安装配置 RocketMQ

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

JDK1.8的安装:

1.检查系统的JDK版本

根目录下操作:cd

java -version  

2.检测JDK安装包

rpm -qa | grep java  

3.卸载OpenJDK(如果存在)

rpm -e --nodeps "对应的JDK安装包"

Note:在阿里云Centos7中笔者没有以上操作

4.安装Jdk1.8.0_144

下载:wget http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz?AuthParam=1507282636_7a947925cfc498e550265a3f28a5cab9

解压缩:tar -zxvf jdk-8u144-linux-x64.tar.gz\?AuthParam\=1507282636_7a947925cfc498e550265a3f28a5cab9

位置迁移:mv jdk1.8.0_144/ /usr/local/jdk1.8.0_144

删除压缩包:rm -rf jdk-8u144-linux-x64.tar.gz\?AuthParam\=1507282636_7a947925cfc498e550265a3f28a5cab9

5.设置环境变量

vim /etc/profile

在最后添加:

export JAVA_HOME=/usr/local/jdk1.8.0_144  

export JRE_HOME=${JAVA_HOME}/jre  

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  

export  PATH=${JAVA_HOME}/bin:$PATH 

6.执行profile

source /etc/profile  

7.检查新安装的JDK

java -version

Note:如果看到版本输出则表示JDK安装成功  

 

 

Maven3.5的安装:

1.下载Maven3.5

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz

2.解压缩

tar -zxvf apache-maven-3.5.0-bin.tar.gz 

3.删除安装包

rm -rf apache-maven-3.5.0-bin.tar.gz 

4.位置迁移

mv apache-maven-3.5.0/ /usr/local/maven3.5

5.设置环境变量

vim /etc/profile

在最后添加:

MAVEN_HOME=/usr/local/maven3.5

export MAVEN_HOME

export PATH=${PATH}:${MAVEN_HOME}/bin

6.执行profile

source /etc/profile

7.检查新安装的Maven3.5

mvn -version

Note:如果看到版本输出则表示Maven安装成功  

 

 

RocketMQ4.1.0的安装:

Git和GitHUb的安装与使用,请参考:http://ericchunli.iteye.com/blog/2395322

1.RocketMQ源码的获取

cd /usr/local

git clone -b release-4.1.0-incubating https://github.com/apache/incubator-rocketmq.git

cd incubator-rocketmq

2.maven编译

mvn -Prelease-all -DskipTests clean install -U

cd distribution/target/apache-rocketmq/bin

 

Note:注意bin的位置

/usr/local/incubator-rocketmq/distribution/target/apache-rocketmq/bin

 

3.启动服务器

nohup sh mqnamesrv -n localhost:9876 &

tail -f ~/logs/rocketmqlogs/namesrv.log

4.启动broker

nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true > ~/logs/rocketmqlogs/broker.log 2>&1 &

tail -f ~/logs/rocketmqlogs/broker.log

5.关闭RcocketMQ相关服务

停止broker服务:sh mqshutdown broker

关闭nameserver服务:sh mqshutdown namesrv

 

Note:以下配置(表示不理解)

# 在bin目录下面执行,将服务器地址引入到环境变量中

$ export NAMESRV_ADDR=localhost:9876

$ echo "ROCKETMQ_HOME=`pwd`" >> ~/.bash_profile  

$ source ~/.bash_profile   

 

Note:内存的设置(内存大于8G的不用设置)

JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g"

runbroker.sh

runserver.sh

 

Note:向MQ发送和接收消息(验证失败)

# 通过java代码实现的案例生产者生产消息

$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

# 通过java代码实现案例消费者消费消息

$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

# 监控MQ,调用命令监控在target的bin目录下

$ sh mqadmin clusterList -n localhost:9876

 

异常测试问题:

@1:Could not find or load main class org.apache.rocketmq.broker.BrokerStartup或者nameserv

异常原因:maven编译,distribution目录下的bin启动位置和distribution目录下的target下的bin启动位置搞错

 

@1:No route info of this topic

异常原因:broker启动不成功

 

@2:connect to <172.17.0.1:10909> failed或者10911等

异常原因:

第一种可能:虚拟机中的网络太多《验证失败》。

rocketMQ在自动识别网络的时候识别错误,可以先把别的网络down掉或者把想用的那个网让它排在前面(没验证过)。ifconfig查看网络发现还有个docker0的网络的ip就是172.17.0.1,因此连接不上。

把docke0的网络断开:broker部署在虚拟机,并且虚拟双网卡同docker冲突

systemctl stop docker

ifconfig docker0 down

Note:docker服务启动后docker0网络会自动开。

systemctl is-enabled  docker         #查询是否自启动

systemctl disable  docker            #禁止自启动

systemctl list-unit-files|grep enabled      #查看自启动服务列表

systemctl stop  docker               #禁止启动

systemctl start  docker              #开启启动

systemctl status  docker

然后在broker.conf中设置brokerip和namesrvAddr,都指定为本机ip后重启《验证失败》。 

 

第二种:setVipChannelEnabled(false)《验证失败》《低版本的不存在这问题,同样未验证》

Rocket默认开启了VIP通道,VIP通道端口为10911-2=10909,若Rocket服务器未启动端口10909,则报connect to <10909> failed。

 

转自:http://www.itboth.com/d/zERjae

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值