RocketMQ在线集群安装

Posted 帅气的毛毛侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RocketMQ在线集群安装相关的知识,希望对你有一定的参考价值。

一、步骤

  1、虚拟机安装CentOS 64位 基础版

  2、下载安装jdk并配置

  3、下载并安装maven

  4、下载并安装rocketMQ  

  5、启动rocketMQ

  6、MQ用户手册

  7、设置MQ并且创建MQ主题

二、操作

  1、虚拟机安装CentOS 64位 基础版  

  (1)下载镜像文件,在虚拟机中启动镜像文件,选择第一个安装:

 

       (2)出现以下界面,安装软件选择最小安装,分区选择自动分区,网络连接打开(要不然开机时还要设置,如果连接不上,那么是你的虚拟机的网络连接有问题),设置完后就开始安装(下一步还需要设置root密码)。安装很快完成,进入系统,此时就是个命令行界面:

 

  2、下载安装jdk并配置  

    使用yum命令来查找需要安装的jdk版本,MQ似乎需要jdk1.8的jdk,因此,我选择了这个jdk:

    接着就使用yum命令来安装jdk1.8:

    完成安装后,确认一下,有以下信息出来就说明是对的(否则command not found):

    接着设置环境变量,此时要先确认下jdk是安装在哪个目录下,输入命令java –verbose,一阵信息飘过之后,在最后面会输出路径,从而可以找到jdk的路径:

    接着就是设置profile文件(这个/etc/profile跟~/.bash_profile有什么区别?):

    在最后面加入以下信息,保存后退出(不知道这样的设置有没有必要,因为jdk安装完成后,命令就可以使用了):

    接着使环境变量生效:

  3、下载并安装maven

    步骤跟2很相似,使用yum list来列出有关maven的相关包,但是发现会列出很多很多的,要下载哪个呢,我也不知道,所以随手打了个命令: 

    找到并列出了一系列要安装的包,然后就同意安装了:

    完成后确认一下:

    这里有个小结:以后想要安装什么包的时候yum list | grep “包名称”或者直接yum install “包名称”

   4、下载并安装rocketMQ

    完成以上步骤后,就要rocketMQ的安装了,首先也是yum,但是发现只有 

    我们要安装rocketMQ,不是acticeMQ,因此就要百度找了,找到官方文档:http://rocketmq.apache.org/docs/quick-start/,看到先决条件:

    感觉有点不妙:Maven版本不对,不过先放着,看看会出现什么错误.git没有装,要先装一个,安装命令依旧是那个yum(参考第3节小结)……所有准备都做完后,开始下载和安装,根据官网上的步骤安装就可以了......(这里省略之后所有)

   5、启动rocketMQ

    这里的启动MQ指的是不做任何设置,启动下MQ(一台master),至少保证能用,并且官网文档上已经比较清楚的介绍了启动的命令,我这边还写这一节,主要是我在启动broker的时候出了一个错误:

    这个肯定是JVM运行参数没有配置好,百度了一下才知道要在这两个地方设置启动JVM的参数(参考http://blog.csdn.net/zhu_tianwei/article/details/40948447),修改成自己合适的参数就可以了

    开启完毕检查一下:

  6、 MQ用户手册

     http://files.cnblogs.com/files/chenkaiwei/阿里RocketMQ_用户指南_V3.2.4_最新版本.pdf

  7、设置MQ并且创建MQ主题

    在启动MQbroker的时候,需要指定配置文件,其中配置文件一定要包含namesrv这个配置项(笔者之前没有配置入了坑),如下图的namesrvAddr配置项(可能不同版本的默认配置不同,但是建议读者检查一下,本示例配置文件路径:rocketMQ/config/2m-noslave/broker-a.properties),配置时不要使用localhost,127.0.0.1,配置完成后,重启broker(配置在多台分布式部署时详细说明)。

 

    输入以下命令验证broker是否已经正常地挂在本namesrvAddr上了:  

    以上,MQ的配置与启动就全部完成了,接下来就要入手代码了,MQ的代码至少需要知道MQ的group,topic,namesrvAddr,namesrvAddr是配置文件中已经配置了,MQ的group可以随意写,只要不等于它默认的MQGroup就行,至于topic,创建或者使用默认都行,那么下面输入以下指令来获取默认的topic信息,如下图所示(下面有些topic是不能被使用的):

     获取完必要信息之后,就可以写代码了,要通过运行,一定要记住关闭服务器上的防火墙(Centos的命令是systemctl stop firewalld.service,其他不同系统有不同的命令):

     运行成功后会在console中打印,这是发送成功的返回结果(发送不成功会报错,最常见的就是no route info of this topic,到时候读者一定要好好回顾本章节的内容):

SendResult [sendStatus=SEND_OK, msgId=AC10ED011D4F2A139A554A14F25E0000,offsetMsgId=AC10EDC400002A9F00000000000001E3, messageQueue=MessageQueue [topic=SELF_TEST_TOPIC, brokerName=broker-a, queueId=0], queueOffset=3]

 

    程序运行正常,消息正常发送到MQ上,可以使用以下命令,到服务器段查询刚出发送到MQ消息(图中列出了所有已经接受到的Message,包括了上面一条信息):

 

以上是关于RocketMQ在线集群安装的主要内容,如果未能解决你的问题,请参考以下文章

docker-compose安装RocketMQ集群

RocketMQ集群搭建及安装rocketmq-console

RocketMQ单台,各种集群,可视化安装步骤

RocketMQ单台,各种集群,可视化安装步骤

RocketMQ安装及集群搭建

RocketMQ安装及集群搭建