当前位置:   article > 正文

银河麒麟服务器操作系统V10SP2单机和集群部署rocketmq_银河麒麟v10安装mq

银河麒麟v10安装mq

        RocketMQ是一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。rocketmq主要由4大核心部分组成:Nameserver(名称服务器)、Broker(消息服务器)、Producer(生产者)、Consumer(消费者)。

一、环境准备

根据业务需要安装好相应JDK版本,本次安装部署使用麒麟系统自带openjdk-1.8

二、下载rocketmq(下载地址:https://archive.apache.org/dist/rocketmq/4.9.4/)

  三、单机部署

        1、解压

  1. unzip rocketmq-all-4.9.4-bin-release.zip # 解压压缩包
  2. mv rocketmq-all-4.9.4-bin-release /usr/local/rocketmq # 将解压之后的压缩包移动到/usr/local下并重命名为rocketmq

        2、启动Name Server

  1. cd /usr/local/rocketmq/
  2. nohup sh bin/mqnamesrv & # 后台启动name server
  3. tail -f ~/logs/rocketmqlogs/namesrv.log # 查看启动日志

        3、启动broken,此时会发现broker无法启动,进程直接退出,也无启动日志生成,查询得知RocketMQ启动对内存要求较高,此次是虚拟机演示,所有需要调整rocketmq默认JVM大小

  1. nohup sh ./mqbroker -n localhost:9876 & # 后台启动broker
  2. tail -f ~/logs/rocketmqlogs/broker.log # 查看broker启动日志

        4、调整rocketmq的JVM大小

在RocketMQ的安装目录(本例为/usr/local/rocketmq/bin),查找sh脚本中的JVM参数设置:

  1. # 修改runserver.sh文件
  2. vim runserver.sh
  3. # 找到如下配置
  4. {JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
  5. # 修改成你可以接受的范围
  6. JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
  7. # 修改runbroker.sh文件
  8. vim runbroker.sh
  9. # 找到如下配置
  10. JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"
  11. # 修改成你可以接受的范围
  12. JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g"

修改文件后即可重复第3步的操作,即可启动broker

        5、测试mq消息,开启两个窗口,窗口1生产消息,窗口2消费消息

  1. # 窗口1
  2. export NAMESRV_ADDR=localhost:9876 # 配置临时环境变量,指明nameserver服务地址端口
  3. sh ./tools.sh org.apache.rocketmq.example.quickstart.Producer # 生产消息
  4. # 窗口2
  5. export NAMESRV_ADDR=localhost:9876 # 配置临时环境变量,指明nameserver服务地址端口
  6. sh ./tools.sh org.apache.rocketmq.example.quickstart.Consumer # 消费消息

        6、退出服务(/usr/local/rocketmq/bin下执行)

  1. sh mqshutdown broker
  2. sh mqshutdown namesrv

四、集群部署

        rocketmq集群部署主要指的是broker(消息服务器)的集群部署,当然NameServer(名称服务器)也能部署成集群,但其在设计之初被设计成几乎无状态的,可以横向扩展,节点与节点相互之间无通信,一般也可部署多台机器来标记为一个伪集群。

        1、broker集群部署方式包含三种:

                1.1、多Master无Slave(对应配置文件:2m-noslave):所有消息服务器都是Master,没有Slave。优点:配置简单,单个Master宕机或重启时对应用无影响;缺点:宕机期间,该机器上未被消费的消息在机器恢复之前不可订阅,消息实时性会受影响。

                1.2、多Master多Slave(异步复制)(对应配置文件:2m-2sasync):每个Master配置一个Slave,消息采用异步复制方式,主备之间有毫秒级消息延迟。优点:消息丢失非常少,消息实时性不会受到影响,master宕机期间,消费者仍然可以从slave中订阅消息。缺点:master宕机,磁盘损坏的情况下会少量消息丢失(异步处理,在未同步消息的时候主机宕机,造成数据不同步丢失问题)

                1.3、多Master多Slave(同步双写)(对应配置文件:2m-2s-sync):优点:数据与服务没有单点问题,Master宕机消息无延迟,服务与数据可用性高;缺点:性能相对异步复制方式略低,消息延迟略高。

        2、本次虚拟机演示多master多slave同步模式

                2.1、配置系统环境变量,编辑/etc/profile文件,添加如下,添加完成后,执行:source /etc/profile 刷新配置文件 

                2.2、集群环境:

                        192.168.231.232  nameserver:9876   brokerserver master1:10911(broker-a.proerties)   slave2:11011(broker-b-s.properties)

                        192.168.231.231  brokerserver master2:10911(broker-b.properties)   slave1:11011(broker-a-s.properties)

                2.3、修改相应节点配置文件,如下图所示,该配置文件只设置了基本的选项,其他设置根据实际需要进行配置,同一机器上启动多个broker时要区分storePathRootDir位置不一样

192.168.231.232节点:master1配置文件如下

 slave2配置文件:

192.168.231.231节点: master2配置文件

 

slave1配置文件

                 2.4、创建相关日志文件存储路径,根据自己机器配置文件的相应配置,创建文件夹

                 2.5、启动集群

                        2.5.1、启动192.168.231.232节点NameServer

  1. cd /usr/local/rocketmq/bin
  2. nohup sh mqnamesrv &

                        2.5.2、启动broker集群

  1. # 192.168.231.232节点下
  2. cd /usr/local/rocketmq/bin/
  3. # 启动master1
  4. nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/broker-a.properties &
  5. # 启动slave2
  6. nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/broker-b-s.properties &
  7. # 192.168.231.231节点下
  8. cd /usr/local/rocketmq/bin/
  9. # 启动master2
  10. nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/broker-b.properties &
  11. # 启动slave1
  12. nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/broker-a-s.properties &
  13. # broker启动时可通过查看nameserver的日志来判断broker是否在nameserver中注册成功
  14. #192.168.231.232节点上,输入命令:tail -f ~/logs/rocketmqlogs/namesrv.log

                2.5.3、遇到的错误

        若报错Lock failed,MQ already started,则可能是配置文件出现问题,检查两个broker的配置文件中storePathRootDir路径是否一样,该存储路径不能相同

         若遇到启动broker时,直接退出,首先可以查看~/logs/rocketmqlogs/broker.log启动日志文件,看是否有相应错误;第二:检查硬件内存大小,因为rocketmq对内存要求较高,可适当调整,修改方法详见上面单机部署步骤。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/727934
推荐阅读
相关标签
  

闽ICP备14008679号