消息队列

生产者:把数据放到MQ里叫生产者
消费者:从MQ里取数据叫做消费者

作用:

1、解耦:把生产出来的数据放到MQ中,由其他消费者消费消费MQ中的数据,从而使数据的生产者和消费者解耦。
2、异步:生产者只需要将数据写到MQ中,就可以直接返回,谁想要这个数据生产者一点都不关心。数据的消费者异步的从MQ里拿数据。
3、削峰/限流:当请求数大于机器可以处理的最大请求数时,可以把请求放到MQ里,系统根据自身情况去MQ里拿数据处理请求

消费者取数据

1、push:生产者将数据放到消息队列中,消息队列有数据了,主动叫消费者去拿
2、pull:消费者不断去轮训消息队列,看看有没有新的数据,如果有就消费

消息模式

点对点模式:
有三个角色:消息队列、生产者、消费者
消息发送者生产消息发送到queue中,然后消息接收者从queue中取出并且消费消息。消息被消费以后,queue中不再有存储,所以消息接收者不可能消费到已经被消费的消息。多个消费者对于队列内的消息是竞争消费关系,每个消费者只能收到队列中的一部分消息。

发布/订阅模式:
三个角色:角色主题、发布者、订阅者
一个生产者向一个特定的队列发布消息,0 个或多个订阅者可以接受来自特定消息主题的消息;发布者需要创建一个订阅主题(Topic)以便客户能够购订阅并保持持续的活动以接受消息,一个订阅主题是由至少一个队列(Queue)组成的,除非订阅者创建了持久的订阅,在订阅者未连接时发布的消息将在订阅者重新连接时重新发布,每个消费者都能收到全量的消息。

RocketMQ

producer:生产者,将消息发送到消息队列,可以生产消息,也可以对外提供接口,由外部来调用接口,再由生产者将受到的消息发送给MQ。
consumer:消费者,从broker拉取消息进行消费
broker:RocketMQ服务器,实现了消息的存储、拉取,每个broker上提供对制定topic的服务。
name Server:一个无状态的名称服务,可以集群部署,可以理解为注册中心,nameServer集群之间不互相通信
tag:用于对消息进行过滤,理解文件message的子主题,同一业务不同目的的message可以用相同的topic但是可以用不同的tag来区分

你可能感兴趣的:(消息队列)