关于rocketmq:RocketMQ入门实践与踩雷

8次阅读

共计 1775 个字符,预计需要花费 5 分钟才能阅读完成。

RocketMQ 的装置与启动(基于 Linux 与 JDK1.8)

下载我的项目

首先 Java 工程抉择对应的 RocketMQ 版本,具体参考以下两图:

  • 举例:SpirngCloudAlibabaVersion 为 2.2.9RELEASE,MQ 则抉择 4.9.4 版本。
  • 举例:如果是 SpringBoot 我的项目,如我的 SpringBoot 我的项目为 2.2.3 版本,对应 SpirngCloudAlibaba 为 2.2.0RELEASE,MQ 则抉择 4.4.0 版本。
  • 确定版本后到官网下载(版本号自行批改):https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.9.3/
  • 装置

    解压并批改启动配置

  • 将下载好的 ZIP 文件在提前创立好的文件夹上 unzip 命令解压缩。
  • 赋权操作:执行 chmod 777 /rocketmq-all-5.1.2-bin-release/*
  • 因为默认启动配置应用内存较大,对其进行批改。
  • 启动

    启动 namesrv(默认 9876 端口)

  • 进入门路 cd bin/
  • 后盾启动 nohup sh mqnamesrv &
  • 查看日志确认是否启动胜利 tail -f ~/logs/rocketmqlogs/namesrv.log
  • 也能够通过端口查看 netstat -an|grep 9876
  • 敞开命令 sh mqshutdown namesrv

    启动 broker(默认 10911 端口)

  • 进入门路 cd bin/
  • 后盾启动 nohup ./mqbroker -n localhost:9876 &
  • 查看日志确认是否启动胜利 tail -f ~/logs/rocketmqlogs/broker.log
  • 敞开命令 sh mqshutdown broker

    测试

    # 申明一个 namesrv 的地址
    export NAMESRV_ADDR=localhost:9876
    # 发送音讯
    ./tools.sh org.apache.rocketmq.example.quickstart.Producer
    # 申明一个 namesrv 的地址
    export NAMESRV_ADDR=localhost:9876
    # 接管音讯
    ./tools.sh org.apache.rocketmq.example.quickstart.Consumer

DashBoard 的搭建

// 可视化页面的搭建


SpringBoot 工程接入 RocketMQ

//TODO 最佳实际


部署投产过程中踩的雷

本机 SpringBoot 我的项目无奈往近程服务器的 RocketMQ 发送音讯;

  • 具体报错:Producer 无奈发送音讯且 Client 日志始终打印如下音讯:

    RocketMq closeChannel: close the connection to remote address[] 
  • 解决方案:

    1.Client 为 Java 工程本地启动。2. 确认 MQ 服务与 Client 版本匹配。3.MQ 服务机的 9876 与 10911 端口平安组须要凋谢给 Clinet 的 ip,同时 MQ 服务机能够 curl 通 Client 的 ip

    本机 SpringBoot 我的项目无奈生产音讯;

  • 具体报错:本机我的项目 Producer 往近程服务器 MQ 发送音讯状态 OK,且依据 MessageId 能够在 dashboard 查问到音讯,然而本机 Client 无奈生产到音讯。
  • 解决方案 1:

    1. 进入 dashboard,确认音讯对应的 topic 下的生产组。2.RocketMQ 分为集群模式和播送模式,集群模式下,topic+tag 在一个订阅组内只会被其中一个消费者终端生产,须要确认是否有其余消费者终端生产了该音讯。
  • 解决方案 2:

    1. 近程服务器未创立该 topic。2. 查看话题列表:sh mqadmin topicList -n 127.0.0.1:9876
    3. 在 bin 门路下执行 ./mqadmin updateTopic -n localhost:9876  -b localhost:10911  -t 你的 topic 名称
    4. 或应用该命令启动 broker
    nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true  -c ../conf/broker.conf &

    消费者无奈注册到 MQ 的话题的订阅组中(//TODO);

  • 如下两图所示:

1. 参考文章:https://blog.csdn.net/xhmico/article/details/122938904

正文完
 0