RabbitMQ是什么?

官网定义:RabbitMQ is the most widely deployed open source message broker[RabbitMQ是最广泛部署的开源消息中间件] (<==官网只顾着吹牛皮也没说清楚消息中间件到底是啥)

个人理解 RabbitMQ是一种消息队列服务,可以理解为数据结构中的队列Web化(加上网络通讯的功能)入队和出队在MQ中变成了生产消息和消费消息。当然模式和数据结构中的队列不可能一样。

在Web开发中使用MQ大多是为了服务的异步与解耦。

一、RabbitMQ安装

官网的安装教程比较详细,各种安装方式都有,基本 复制、粘贴、执行、即可 这里就不再列举

https://www.rabbitmq.com/getstarted.html <==安装教程

二、RabbitMQ 四大基本概念与六大消息模式

RabbitMQ的消息服务由4大概念组成

1.生产者(Producer):产生数据发送消息的程序

2.消费者(Consumer):消费使用数据的程序

3.交换机(Exchanger):生产者发送(生产)的消息并不是直接存储到队列而是先经过交换机。交换机将处理它接收到的消息,是将这些消息推送到特定队列还是推送到多个队列,亦或者是把消息丢弃

4队列(Queues):本质就是数据结构中的队列 内存中的数组

RabbitMQ工作原理图如下(图取自百度 如侵删)

六大消息模式

1.简单模式(Sample):

一个消费者 消息直接投递到队列(实际有默认的交换机) 如下图

2.工作队列(WorkQueues)模式:

简单模式的一对多版 多个消费者同时消费

3.发布/订阅(Publish/Subscribe)模式:

消息不再直接投放到队列而是投给交换机由交换机广播(Fan-Out)分发给所有跟交换机绑定的队列

4.路由(Routing)模式:

该模式下跟交换机绑定的队列有路由Key(RoutingKey)的关系,消息将根据Key配置分发到对应的队列

5.主题(Topic)模式:

主题模式和路由模式类似但主题模式的key可以通配,可以理解的路由模式的通配版

RPC模式:RPC模式基本用不上 不作介绍 详细用法见官网 https://www.rabbitmq.com/tutorials/tutorial-six-java.html

 

posted on 2023-04-06 16:45  霸王的笔尖  阅读(63)  评论(0)    收藏  举报