centos安装rocketMQ

 

1.下载安装包

  http://rocketmq.apache.org/release_notes/

  这里选择 4.4.0 版本,点击进去

    

 

 

   可以选择源码包或者二进制文件,这里选择二进制文件(ps:如果选择源码包,需要自行编译,编译需要maven环境)

    

 

 

   右键 binary 文件链接,“复制链接地址”,然后到Linux目录下(本例:/usr/local/server/rocketmq)

    wget https://archive.apache.org/dist/rocketmq/4.4.0/rocketmq-all-4.4.0-bin-release.zip

2.解压

  unzip rocketmq-all-4.4.0-bin-release.zip

    如果报错 unzip: command not found,则先安装unzip工具:

      yum install zip unzip

3.启动

  cd rocketmq-all-4.4.0-bin-release

  3.1.创建日志目录

    mkdir log

  3.2.运行 os.sh

    sh bin/os.sh

  3.3.启动 nameser

    nohup sh bin/mqnamesrv >>log/namesrv.log &

      

 

 

   3.4.启动 broker

    nohup sh bin/mqbroker >>log/broker.log &

      

 

 

   3.5.查看进程

    ps -ef|grep java

      

 

 

 

4.发送和接收消息

  4.1.在发送和接收消息之前,我们需要将 name servers 的位置告诉客户端。rocketMQ提供很多方式来实现这个目的,为了简单起见,我们使用环境变量 NAMESRV_ADDR 来实现(这一段是翻译官网说明):

    export NAMESRV_ADDR=localhost:9876

  4.2.创建生产者:

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

    

 

 

     4.2.1.从日志中看到,出错了。问题可能原因

      4.2.1.1. broker 没有正确连接到 name server,检查方式:

        sh bin/mqadmin clusterList -n localhost:9876

      4.2.1.2. Producer 没有正确连接到 name server,需要检查防火墙

        执行关闭防火墙后重试:systemctl stop firewalld.service

      4.2.1.3. 没有手动创建 topic,也没有在启动 broker 时指定允许自动创建。

        手动创建方式:sh bin/mqadmin updateTopic -b 127.0.0.1:10911 -t TopicTest

        自动创建方式,启动 broker时指定参数 autoCreateTopicEnable=true,如:nohup sh bin/mqbroker >>log/broker.log autoCreateTopicEnable=true &

 

      本例 4.2.1.1.检查结果:

        

 

 

       可以看到,结果内容为空,说明确实是 broker 没有连接到 namesrv。回顾我们刚刚的启动过程,是先执行了启动命令,后执行 export 环境变量的,会不会是这个问题?那我们先使用 5. 中的命令停止 namesrv 和 broker 进程,重新启动试试。

        sh bin/mqshutdown broker

        sh bin/mqshutdown namesrv

        nohup sh bin/mqnamesrv >>log/namesrv.log &

        nohup sh bin/mqbroker >>log/broker.log &

      结果:

        

 

 

       可以看到,这下有结果了,那么我们继续来创建生产者:

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

 

 

       可以看到,执行成功了,并且发送了很多消息

  4.3.创建消费者

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

 

 

     OK,消费者也接收到消息了。     

5.停止

  5.1.停止 broker

    sh bin/mqshutdown broker

  5.2.停止 namesrv

    sh bin/mqshutdown namesrv

 6.回顾

  在4.2.中执行生产者的时候出错了,我们预设了三个可能原因,虽然我们在猜测了第一个原因并重启之后,问题已经不存在了,但是还有两个原因。第二个原因其实跟第一个根本原因一样,都是找不到服务地址,因为我们之前并没有配置。那么第三个呢?我们全程并没有指定参数允许自动创建 topic 呀。这说明默认配置式允许自动创建的,真好。

7.常用命令  

  查看集群情况 ./mqadmin clusterList -n 127.0.0.1:9876
  查看 broker 状态 ./mqadmin brokerStatus -n 127.0.0.1:9876 -b 172.20.1.138:10911 (注意换成你的 broker 地址)
  查看 topic 列表 ./mqadmin topicList -n 127.0.0.1:9876
  查看 topic 状态 ./mqadmin topicStatus -n 127.0.0.1:9876 -t MyTopic (换成你想查询的 topic)
  查看 topic 路由 ./mqadmin topicRoute -n 127.0.0.1:9876 -t MyTopic

  另外,在安装目录的 bin 目录下有一个文件 README.md,记载了启动、停止、创建主题、创建订阅组等基本命令。以后再使用的过程中,可以将自己用到的一些其它命令也写到文件里面去。以备忘和查阅。

8.安装可视化管理台

  rocketmq-externals

  8.1.github源码下载:https://github.com/apache/rocketmq-externals

  8.2.指定你的 rocketmq服务的地址

    修改 rocketmq-console 模块的 application.properties文件,里面的配置项 rocketmq.config.namesrvAddr(不修改则使用环境变量 NAMESRV_ADDR),如本例是:localhost:9876,也可以不配置(因为本例的服务端口就是默认并且配置了环境变量)。

  8.3.修改管理台程序的服务端口

    server.port = 8580

  8.4.打包

    idea打开项目,然后在终端执行:

      cd rocketmq-console

      mvn clean package -Dmaven.test.skip=true

  8.5.将打包得到的jar包上传服务器

    /usr/local/server/rocketmq

  8.6.登录服务器,启动

    cd /usr/local/server/rocketmq/

    mkdir admin

    mv rocketmq-console-ng-1.0.1.jar admin

    cd admin

    mkdir log

    nohup java -jar rocketmq-console-ng-1.0.1.jar >>log/boot.log &

  8.7.开放服务器 8580 端口,或者配置 nginx 域名解析,开放外网访问。

  8.8.结果

 

 9.监听外网

  上述整个过程中,讲述的都是基于local的服务。假如我们在阿里云服务器上经过上述配置,然后我们在本地启动一个rocketmq producer,发现还是发送不成功。这是因为服务绑定在本地网卡 ip 上,也就是 127.0.0.1。将服务绑定到外网的方法:

    9.1.修改环境变量:export NAMESRV_ADDR=公网IP:9876

    9.2.启动namesrv:nohup sh bin/mqnamesrv -n 公网IP:9876 >>log/namesrv.log &

    9.3.修改broker配置文件,conf/broker.conf,添加一行

      brokerIP1=公网IP

    9.4.启动 broker:nohup sh bin/mqbroker -n 公网IP:9876 -c conf/broker.conf autoCreateTopicEnable=true >>log/broker.log &

 

10.参考

  10.1.在4.2.中报错问题排查参考:https://blog.csdn.net/jiangyu1013/article/details/81478754

  10.2.在7.中常用命令朱安转抄:https://blog.csdn.net/shiloh_my/article/details/82977584

  10.3.管理台安装参考:https://www.cnblogs.com/buyige/p/9437054.html

  10.4.绑定外网配置参考:https://blog.csdn.net/lw5885799/article/details/88646051

posted @ 2019-12-02 15:57  不爱刺猫的鱼  阅读(2919)  评论(0编辑  收藏  举报