2.RabbitMQ相关概念

介绍

RabbitMQ是一个消息中间件,接受并转发消息。它接收、存储和转发消息数据。

四大核心概念:

1.生产者

产生数据发送消息的程序是生产者。

2.消费者

3.队列

每一个队列对应一个消费者。

如果两个消费者对应同一个队列,那么队列中的消息只有一个消费者可以收到。

4.交换机

一个交换机可以对应多个队列。交换机与队列是绑定关系。

 六大模式

1.简单模式

2.工作模式

3.发布订阅模式

4.路由模式

5.主题模式

6.发布确认模式

RabbitMQ中名词解释

Broker表示接收和分发消息的应用,RabbitMQ Server就是Message Broker。

Exchange交换机

Queue队列

binding 绑定,交换机与队列之间的虚拟连接,binding包含routing key, binding信息被保存在exchange的查询表中,用于message的分发依据。

Producer生产者

Consumer消费者

Channel信道(发消息的通道)

Connection连接:生产者、消费者与broker之间的TCP连接。

每个Connection连接里可以有多个信道Channel。

为什么在Connection中会有多个channel信道:

建立TCP Connection是开销巨大的,效率也低下,Channel是在Connection内部建立逻辑连接Channel,如果应用程序支持多线程,通常每个thread创建单独的channel进行通信,channel之间是完全隔离的,channel作为轻量级Connection极大的减少了操作系统建立TCP Connection的开销。

Virtual host:出于多租户和安全因素设计,把amqp的基本组件划分到一个虚拟的分组中,类似于网络中的namespace概念。当多个不同的用户使用同一个RabbitMQ server的时候,可以划分多个vhost,每个用户在自己的vhost创建exchange/queue等。

相关推荐

  1. RabbitMq相关面试题

    2024-07-17 07:44:04       45 阅读
  2. RabbitMQ相关总结

    2024-07-17 07:44:04       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 07:44:04       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 07:44:04       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 07:44:04       62 阅读
  4. Python语言-面向对象

    2024-07-17 07:44:04       72 阅读

热门阅读

  1. 嵌入式linux相机 摄像头模块

    2024-07-17 07:44:04       31 阅读
  2. 服务器网络配置

    2024-07-17 07:44:04       27 阅读
  3. [NOIP2006 提高组] 能量项链(含代码)

    2024-07-17 07:44:04       26 阅读
  4. VBA学习(20):一批简单的Excel VBA编程问题解答

    2024-07-17 07:44:04       27 阅读
  5. ubuntu下发布应用,ldd脚本代替linuxdeployqt

    2024-07-17 07:44:04       21 阅读
  6. 我们来科普以下vue中v-show 和v-if区别

    2024-07-17 07:44:04       24 阅读
  7. Day 10.08函数作业答案·二

    2024-07-17 07:44:04       23 阅读
  8. 面试题 30. 包含 min 函数的栈

    2024-07-17 07:44:04       25 阅读
  9. OpenResty使用Lua笔记

    2024-07-17 07:44:04       26 阅读
  10. Springboot定义阿里云oss工具类

    2024-07-17 07:44:04       25 阅读