消息队列之rocketmq安装启动与常见问题整合

一、 rocketmq 消息队列

1、介绍

  • 阿里开源的一款高性能、高吞吐量的分布式消息队列中间件。

    • 特点:
    1. 响应快:高并发的情况下1ms 响应情况占比超过99.6%

    2. 高一致性:使用于金融行业,高性能追踪以及审计模式

    3. 多模型:支持订阅+点对点

    4. 支持多方式:支持pull+push两种消息模式

    5. 高性能:单一队列百万级别

    6. 更安全:支持单master+多master节点+多master多slave节点

2、概念:

  • producer:消息生产者

  • producer:group:消息生产组,发送同类消息的一个消息生产组

  • consumer:消费者

  • consumer group:消费同个消息的多个实例

  • tag:标签,子主题(二级分类),用于区分同一个主题下的不同业务的消息

  • topic 主题

  • message:消息

  • broker:mq程序,接收生产的消息,提供给消费者消费的程序

  • name server:给生产和消费者提供路由信息,提供轻量级的服务发现和路由

3、官网地址:http://rocketmq.apache.org
在这里插入图片描述
4、GitHub 源码地址:https://github.com/apache/rocketmq

二、 快速部署rocketmq

1、下载安装
地址: http://rocketmq.apache.org/

安装须知: “ * ” 为硬性要求

    64bit OS, Linux/Unix/Mac is recommended;  *
	64bit JDK 1.8+;(必须)*
	Maven 3.2.x;  *
	Git; 
	4g+ free disk for Broker server(不是硬性要求但需要更改内存配置)

步骤:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、启动:

1、本地widows安装启动
解压——>进入bin ——>使用cmd命令——>start mqnamesrv(启动名称服务)
在这里插入图片描述
进入bin ——>使用cmd命令——>start mabroker(启动broker)
在这里插入图片描述

2、 linux/os/mac 环境安装
  • 解压
unzip  rocketmq-all-4.6.0-bin-release.zip
  • 修改文件夹名
mv  rocketmq-all-4.6.0-bin-release  rocketmq-4.6
  • 进入到rocketmq-4.6(我的版本是4.6版本)

  • 启动名称服务

建议使用守护进程 :启动名称服务 
nohup sh bin/mqnamesrv  &  不指定IP启动默认本地
nohup sh bin/mqnamesrv -n  你的电脑IP:9876 &  命令开启

使用tail -f nohup.out 
发现 :The Name Server boot success. serializeType=JSON  说明启动成功
  • 启动broker
官网命令:nohup sh bin/mqbroker -n localhost:9876 & 
建议使用命令 nohup sh bin/mqbroker -n  你的电脑IP:9876 -c conf/broker.conf autoCreateTopicEnable=true &

为什么?

  • 官网命令是使用localhost本机启动broker并且没有指定公网IP 和自动创建topic 会出现下面问题

    • 问题1:连接超时
      org.apache.rocketmq.remoting.exception.RemotingException sendDefaultImpl call timeout
      原因:
         1、防火墙没有开放端口
         2、如果是阿里云等服务器没有配置安全组
         3、找不到对应的broker IP

      问题解决:

      1>、防火墙开放端口 9876 、10909 、10911
             9876:namesrv 访问端口
            10911:broker 访问端口
            10909:数据VIP访问端口

      2>、设置安全组
      在这里插入图片描述
      3>、修改配置文件

    使用命令 vi rocketmq-4.6/conf/broker.conf 
    添加 brokerIP1=47.xx.xx.93(你的外部服务器地址(安装在阿里云服务器上),如果是本地就是本机IP)
    
    • 问题2:No route info of this topic 没有topic信息

      • 产生原因:

        1、Broker禁止自动创建Topic,且用户没有通过手工方式创建Topic
        2、Broker没有正确连接到Name Server
        3、Producer没有正确连接到Name Server

      问题解决 :启动命令加上 autoCreateTopicEnable=true

    • 问题3 There is insufficient memory for the Java Runtime Environment to continue.内存不够
      产生原因:rocketmq启动要求4G 内存所以需要修改启动配置
      解决:

    原配置:-Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m

     	你需要进到bin目录下 使用 vi runserver.sh 以及runbroker.sh 修改成下面内存占用
     			  
     	vi runserver.sh
     	JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
     				
     	vi runbroker.sh
     	JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m"
    

    然后使用 jps 命令查看Java进程 kill -9 pid 杀死rocketmq 进程 重启rocketmq服务

       jps
    

    在这里插入图片描述

    kill -9 pid
    

    在这里插入图片描述

3、安装可视化控制台
  • GitHub下载地址: https://github.com/apache/rocketmq-externals
    进入到console项目目录使用maven命令打包

    cd rocketmq-externals\rocketmq-console
    mvn clean package -Dmaven.test.skip=true
    使用java -jar 启动
    

上述打包操作 windows 和Linux都可以

如果发现可视化控制台出现无法连接远程broker 修改配置文件.properties
在这里插入图片描述
如果项目还是启动不了 查看并修改pom 文件rocketmq 版本 如下
在这里插入图片描述

启动可视化平台:

在这里插入图片描述
访问可视化平台界面 localhost:8080
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值