RocketMQ学习笔记-基础概念

RocketMQ的功能

流量削锋

RocketMQ的引入,可以大大减少系统的流量压力,同时,rokecktmq能支持十万量级并发压力。将用户请求存入mq中间件,在下游系统慢慢消费,是能很大程度节省服务器资源以及防止服务器崩溃的功能。

应用解耦

复杂的应用里会存在多个子系统,比如电商应用中存在订单系统,库存系统,物流系统,支付系统等。这个时候用户下单,可能牵扯到的系统多而杂,而且容错率很低,任何一个子系统由于发版导致服务不可用之类的原因,都会造成下单异常,服务不可用,而使用RocketMQ则可以将下单消息存入消息队列,服务恢复即可消费。不会影响用户体验。

消息分发

将通用的消息写入消息队列,各个下游消费方可以根据自身需要订阅数据,不同团队订阅的数据可以重复也可以不重复,互不影响。

RocketMQ各部分角色

RocketMQ由四个部分组成

  • Producer(生产者)
  • Consumer(消费者)
  • Broker(存储器)
  • NameServer(协调中心)

具体架构图如下:


image.png

启动RocketMQ的顺序是先启动NameServer,再启动Broker,为了消除单点故障以及高可用,可以在多台机器上部署多个NameServer和Broker,为每个Broker部署一个或者多个Slave。

Topic Group Tag基础概念

Topic

消息主题,通过 Topic 对不同的业务消息进行分类。Topic代表消息的不同类型,两种消息没有任何关联,比如门店新增的消息,和门店订单的消息

Tag

消息标签,用来进一步区分某个 Topic 下的消息分类,消息队列 RocketMQ 允许消费者按照 Tag 对消息进行过滤,确保消费者最终只消费到他关注的消息类型。


image.png

Group

和现实世界中一样,RocketMQ中也有组的概念。代表具有相同角色的生产者组合或消费者组合,称为生产者组或消费者组。

消费组下的clusting和broadcasting概念

1、在clustering模式下,同一个consumerGroup里的每个Consumer只消费所订阅消息的一部分内容,同一个ConsumerGroup里的所有的Consumer消费的内容合起来才是所订阅的Topic内容的整体,从而达到负载均衡的目的
2、在broadCasting模式下, 同一个ConsumerGroup里的每个Consumer都能消费到所订阅的全部消息,也就是一个消息会被多次分发,被多个consumer消费
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容