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

centos安装rocketMQ的更多相关文章

  1. Linux安装RocketMQ

    本文介绍Linux安装RocketMQ. 1.RocketMQ简介 RocketMQ是阿里巴巴中间件开发的分布式消息系统,曾经经历过很多阿里巴巴大型项目的实际检验.在去年已经正式捐献给Apache开源 ...

  2. CentOS安装gitlab,gerrit,jenkins并配置ci流程

    CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...

  3. 【推荐】CentOS安装Subversion-1.8.11+HTTP协议支持配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. 我们需要搭建一个自己的SVN服务器. 此外,搭建好的SVN服务器除了需要支持svn协议外,最好还需要支持HTTP协议和HTTPS协 ...

  4. 【推荐】CentOS安装PHP-5.6.4+扩展安装+安全配置+性能配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 前段时间PHP官方发布了一个重要的安全升级公告,修复了两个unserialize函数的严重漏洞,目前受影响的版本有: ...

  5. CentOS安装Apache-2.4.10+安全配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装Nginx之前,请确保已经使用yum安装了各基础组件,并且配置了www用户和用户组,具体见<CentOS ...

  6. CentOS安装Nginx-1.6.2+安全配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装Nginx之前,请确保已经使用yum安装了pcre等基础组件,具体见<CentOS安装LNMP环境的基础 ...

  7. CentOS安装MySQL-5.6.10+安全配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装MySQL之前,请确保已经使用yum安装了各类基础组件,具体见<CentOS安装LNMP环境的基础组件& ...

  8. 转: CentOS 安装 SVN1.8 客户端

     from: http://blog.csdn.net/clementad/article/details/46898091 CentOS 安装SVN客户端 标签: subversionrpmcent ...

  9. CentOS安装gitLab服务器

    首先利用gitlab-install-el6.sh安装,比较简单: (出处:http://www.linuxidc.com/Linux/2013-06/85754.htm) 1:如果有条件,提供一台全 ...

随机推荐

  1. 用google translate大文件

    问题: google translate对于大文件不支持,咋办? 思路:自己写个函数把的文件拆成小文件,再用google translate! code: from googletrans impor ...

  2. 国人开发的api测试工具 ApiPost

    挺好用的 ApiPost https://www.apipost.cn/download.html 需要注册,免费试用.感觉比postman好用

  3. C#nameof用法

    1.实现代码 using System; namespace NameofUsage { /// <summary> /// C# nameof用法 /// </summary> ...

  4. 【转载】 clusterdata-2011-2 谷歌集群数据分析(三)

    原文地址: https://blog.csdn.net/yangss123/article/details/78306270 由于原文声明其原创文章不得允许不可转载,故这里没有转载其正文内容. --- ...

  5. ISO/IEC 9899:2011 条款5——5.2 环境上的考虑

    5.2 环境上的考虑 5.2.1 字符集 5.2.2 字符显示语义 5.2.3 信号与中断 5.2.4 环境限制

  6. 关于TCP粘包和拆包的终极解答

    关于TCP粘包和拆包的终极解答 程序员行业有一些奇怪的错误的观点(误解),这些误解非常之流行,而且持有这些错误观点的人经常言之凿凿,打死也不相信自己有错,实在让人啼笑皆非.究其原因,还是因为这些错误观 ...

  7. linux生成新的列(awk)

    awk的功能特别强大,其中一个功能就是生成新的列,不论这列是在第一列,最后一列,还是中间,随你任性插入. 举例来说,有下列文件test1.txt test1.txt a b c 1 2 3 现在我想在 ...

  8. PAT 甲级 1073 Scientific Notation (20 分) (根据科学计数法写出数)

    1073 Scientific Notation (20 分)   Scientific notation is the way that scientists easily handle very ...

  9. ABAP DEMO 年月的搜索帮助

    效果图: *&---------------------------------------------------------------------* *& Report YCX_ ...

  10. 复习sql server 2000 MSDE2000 ,安装,打补丁,开1433端口。

    前言: 由于工作需要,一个仍在使用的古董软件需要安装配置. 原有系统是在主机部署,单机安装sql2000,其他机器(分机)也单机部署软件,部署sql2000,通过dtsrun /f sync.dts( ...