RocketMQ学习笔记

官方文档https://github.com/apache/rocketmq/tree/master/docs/cn

基本概念

  1. Message Model
  2. Producer
  3. Consumer
  4. Topic
  5. Broker Server
  6. Name Server
  7. Pull Consumer
  8. Push Consumer
  9. Producer Group
  10. Consumer Group
  11. Clustering
  12. Broadcasting
  13. Nomarl Ordered Message
  14. Strictly Ordered Message
  15. Message
  16. Tag

特性(features)

  1. 订阅与发布
  2. 消息顺序
  3. 消息过滤
  4. 消息可靠性
  5. 至少一次
  6. 回溯消费
  7. 事务消息
  8. 定时消息
  9. 消息重试
  10. 消息重投
  11. 流量控制
  12. 死信队列

整体架构

分为技术架构与部署架构

  • 生产者(Producer):负责产生消息,生产者向消息服务器发送由业务应用程序系统生成的消息。
  • 消费者(Consumer):负责消费消息,消费者从消息服务器拉取信息并将其输入用户应用程序。
  • 消息服务器(Broker):是消息存储中心,主要作用是接收来自 Producer 的消息并存储, Consumer 从这里取得消息。
  • 名称服务器(NameServer):用来保存 Broker 相关 Topic 等元信息并给 Producer ,提供 Consumer 查找 Broker 信息。

整体流程

  • 1、启动 Namesrv,Namesrv起 来后监听端口,等待 Broker、Producer、Consumer 连上来,相当于一个路由控制中心。

  • 2、Broker 启动,跟所有的 Namesrv 保持长连接,定时发送心跳包。

    心跳包中,包含当前 Broker 信息(IP+端口等)以及存储所有 Topic 信息。 注册成功后,Namesrv 集群中就有 Topic 跟 Broker 的映射关系。

    • 3、收发消息前,先创建 Topic 。创建 Topic 时,需要指定该 Topic 要存储在哪些 Broker上。也可以在发送消息时自动创建Topic。
  • 4、Producer 发送消息。

    启动时,先跟 Namesrv 集群中的其中一台建立长连接,并从Namesrv 中获取当前发送的 Topic 存在哪些 Broker 上,然后跟对应的 Broker 建立长连接,直接向 Broker 发消息。

  • 5、Consumer 消费消息。

    Consumer 跟 Producer 类似。跟其中一台 Namesrv 建立长连接,获取当前订阅 Topic 存在哪些 Broker 上,然后直接跟 Broker 建立连接通道,开始消费消息。

 

简单阅读了基本知识后,下面先部署环境

参考文档 http://rocketmq.apache.org/docs/quick-start/

本次选择binary https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip

-----------------

The following softwares are assumed installed:

64bit OS, Linux/Unix/Mac is recommended;(Windows user see guide below)
64bit JDK 1.8+; (这里需要注意32bit 后面Producer报错
Maven 3.2.x;
Git;
4g+ free disk for Broker server

添加环境变量

ROCKETMQ_HOME=D:\develop\rocketmq\rocketmq-all-4.7.1-bin-release
NAMESRV_ADDR=localhost:9876

--------------------------------------------

由于RocketMQ默认配置要求很高,可能需要修改/bin目录的三个sh或cmd中jvm参数的大小

修改/bin/runserver.cmd   runbroker.cmd     tools.cmd

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=128m"

broker还有个参数 -XX:MaxDirectMemorySize=1g需要改小

--------------

启动并验证,需要打开四个窗口按顺序执行,可以在文件夹地址栏输入powershell,然后回车快速打开。

.\bin\mqnamesrv.cmd

.\bin\mqbroker.cmd -n localhost:9876 autoCreateTopicEnable=true

.\bin\tools.cmd org.apache.rocketmq.example.quickstart.Producer

.\bin\tools.cmd org.apache.rocketmq.example.quickstart.Consumer

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值