Spring Boot的消息之旅(一)
1.什么是消息队列? 消息队列,英文名message queue,简称MQ。MQ是一种应用程序对应用程序的通讯方法。消息队列是分布式应用中不可或缺的组件,主要解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性的架构。常用的有RabbitMQ、Kafka、ActiveMQ、RocketMQ等。 2.RabbitMQ 2.1 RabbitMQ的几种角色 RabbitMQ是一个消息代理,它的工作是接收、存储和发送消息(Message)这种二进制数据。 下面是RabbitMQ和消息所涉及的一些术语: ·生产(Producing):意思就是发送。发送消息的程序就是生产者(Producer),用P表示。 ·队列(Queue):消息虽然经过了RabbitMQ和应用程序,但它只能存储在队列中。实质上,队列就是一个巨大的消息缓冲区,大小只受主机内存和硬盘限制。 ·消费(Consuming):消费和接收(receiving)是一个意思,就是等待获取消息的程序。用C表示。 2.2 RabbitMQ的几种模式 2.2.1 简单模式 点对点消息发送,这种模式多用于聊天场景。如图: 2.2.2 工作队列模式 一个消息发送给多个消费者,多用于资源调度和抢红包等场景。如图: 2.2.3 订阅模式 生产者( Producer)只需要把消息发送给一个交换机( Exchange)