初见RocketMQ概念方面理解

211 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前言

上次给大家讲了对外OpenApi的流程设计,而这次RocketMQ就是用来给OpenApi服务的一个消息传输管道,我当是一个内存空间来使用,因为它的性能非常高,仅次于kakufa的一款MQ。

image.png

RocketMQ是什么

RocketMq主要由Producer、broker、Consumer,也就是提供者、经纪人、消费者来组成,提供者顾名思义就是提供消息的,消费者就是消费消息的,而经纪人它是属于代理消息的,broker会存储消息。broker存储消息依靠topic来进行分类,broker可以有多个服务器。

生产者 producer: 负责生产消息,业务系统生产消息后,进行RocketMQ消息推送到broker队列中,推送方式有同步发送,异步发送,顺序发送,单向发送。单向与异步发送耗时都短,但是单项对可靠性要求不高的场景使用最好,异步用在对时间要求更高的场景,而同步主要用在消息传递和通知等业务。

消费者 consumer: 负责消费消息,消费者一般有多台服务器,消费者会从Broker服务器获取消息,通过订阅Topic来获取消息,RocketMQ基于用户两种消费形式,拉取式消费和推动式消费

RocketMQ的架构

image.png

消费消息

由于我的OpenApi是第三方服务所以没有提供数据,大多数都是Feign调用与消费信息,所以这里我们重点讲一下消费消息

拉取式消费

该模式Broker收到消息不会推送给应用,一般是应用去遍历Topic获取一堆消息,然后应用根据自己的业务处理来消费消息,主动权是在应用。

推动式消费

该模式是指Broker会推送给应用,应用通过监听器实时监听Broker发送的消息,这个模式实时性很高。

总结

  1. boker是消息的存储地方
  2. RocketMQ的发送有四种同步发送、异步发送、顺序发送、单向发送