rocketmq学习杂记

143 阅读1分钟

rocketmq总体架构图,来源于 https://rocketmq.apache.org/docs/rmq-arc/,可参考:

1.本地部署遇到的问题: rocketmq默认配置对内存要求较高,启动会有问题, /xxxx/distribution/target/apache-rocketmq/bin/runserver.sh /xxxx/distribution/target/apache-rocketmq/bin/runbroker.sh

2.杂记 参考:http://blog.csdn.net/quhongwei_zhanqiu/article/details/39142693

1.消息过滤,在broker中,可以按照consumer的要求做过滤,较少了网络传输。

2.rocketmq使用长轮询的方式,保证消息的实时性。 ** 基于 拉模式 拉取消息,consumer做负载均衡并通过长轮询向broker拉消息。

3.producer向队列发送消息,队列集合 称为 Topic,

4.rocketmq的网络部署特点: 1.name server 是一个无状态节点,可集群部署,节点之间无任何信息同步。 nameserver启动后,每隔10s轮询 查询清理失效的broker链接。

2.broker 有主备之分,
3.producer 可与 name server集群中的一个节点(随机选择) 建立 长连接,定期从 name server 取 topic 路由信息,并向提供 topic服务的master 建立长连接,且定时向 master 发送心跳,
  producer 完全无状态,集群部署。
  consumer也是与 nameserver 的一个节点 建立 长链接,定期从 nameserver 取 topoic信息,并向提供 topic服务的master 建立长链接,且定时发送心跳,
4.  consumer:
拉取消费的方式:
  1.push:consumer通过长轮询 拉取消息后,回调MessageListener接口实现完成消费,应用系统只要MessageListener完成业务逻辑即可。
    这种模式用的最多。
  2.pull:完全由业务系统去控制,定时拉取消息,指定队列消费
启动流程:
  1.订阅topic,Map存储top对应的订阅对象。
  2.注册消息消费的监听器,