首页 > 其他分享 >RabbitMq介绍(RabbitMq第一篇)

RabbitMq介绍(RabbitMq第一篇)

时间:2023-08-11 11:05:49浏览次数:39  
标签:Exchange 第一篇 介绍 Queue 队列 host RabbitMq Virtual 消息

RabbitMq就是消息队列

一、什么是消息队列

  • 消息队列(Message Queue)是一种用于在应用程序之间传递消息的通信方式,消息队列允许应用程序异步地发送和接受消息,并且不需要直接连接到对方。
  • 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。
  • 队列(Queue)可以说是一个数据结构,可以存储数据,先进先出。

二、消息队列有哪些作用和应用场景

1、应用解耦

RabbitMq介绍(RabbitMq第一篇)_消息队列

2、异步提速

RabbitMq介绍(RabbitMq第一篇)_应用程序_02

3、流量削峰

RabbitMq介绍(RabbitMq第一篇)_RabbitMq_03


三、rabbitmq 工作原理

rabbitmq 四大核心

  • 生产者(producer)
  • 消费者(consumer)
  • 交换机(exchange)
  • 队列(queue)

RabbitMq介绍(RabbitMq第一篇)_RabbitMq_04

Broker:接收和分发消息的应用,RabbitMQ Server就是Message Broker;

Virtual host:Virtual host是一个虚拟主机概念,一个Broker中可以有多个Virtual host,每个Virtual host都有一套自己的Exchange和Queue,同一个Virtual host中的Exchange和Queue不能重名,不同的Virtual host中Exchange和Queue名字可以一样。这样,不同的用户访问同一个RabbitMQ Broker时,可以创建自己单独的Virtual host,然后在自己的Virtual host中创建Exchange和Queue,很好地做到了不同用户之间的相互隔离的效果;

Connection:producer/consumer和broker之间的TCP连接;

Channel:发送消息的通道,如果每一次访问RabbitMQ都建立一个Conncetion,在消息量大的时候建立TCP Conncetion的开销是巨大的,效率也低。Channel是在conncetion内部建立的逻辑连接,如果应用程序支持多线程,通常每个thread创建单独的channel进行通讯,AMQP method包含了channel id 帮助客户端和message broker识别channel,所以channel之间是完全隔离的。Channel作为轻量级的Connection极大减少了操作系统建立TCP conncetion的开销;

Exchange:message到达broker的第一站,根据分发规则,匹配查询表中的routing key,分发消息到queue中。常有的交换机类型有:direct(直连交换机),topic(主题交换机) and fanout(扇形交换机);

Queue:Queue是一个用来存放消息的队列,生产者发送的消息会被放到Queue中,消费者消费消息时也是从Queue中取走消息;

Binding:exchange和queue之间的虚拟连接,binding中可以包含routing key,Binding信息背保存到exchange中的查询表中,用于message的分发依据。

跳转RabbitMq第二篇:讲解如何在Linux CentOS 7 环境安装卸载RabbitMq

标签:Exchange,第一篇,介绍,Queue,队列,host,RabbitMq,Virtual,消息
From: https://blog.51cto.com/u_16181287/7044352

相关文章

  • JLR EDI 项目 MySQL 方案开源介绍
    近期为了帮助广大用户更好地使用EDI系统,我们根据以往的项目实施经验,将成熟的EDI项目进行开源。用户安装好知行之桥EDI系统之后,只需要下载我们整理好的示例代码,并放置在知行之桥指定的工作区中,即可开始使用。今天的文章主要为大家介绍JLREDI项目,了解如何获取开源的项目代......
  • 《C++ GUI Qt4编程》第2章——创建对话框——深入介绍信号和槽
    槽和普通的C++成员函数几乎是一样的——可以是虚函数;可以被重载;可以是公有的、保护的或者私有的,并且也可以被其他C++成员函数直接调用,它们的参数可以是任意类型。唯一不同的是:槽还可以和信号连接在一起,在这种情况下,每当发射这个信号的时候,就会自动调用这个槽。connect(sender,SI......
  • WIFI的频段简单介绍
     1、2.4G1.1运行频率WIFI的2.4G常用频率为 2.400GHz~2.4835GHz之间,1.2基于标准基于IEEE802.11b的技术标准。 2、5G2.1运行频率WIFI的5G常用频率为5.15GHz至5.875GHz,其中包括多个频道,每个频道之间的带宽均为20MHz、40MHz、80MHz或160MHz5GWIFI分为4个段:5150-52......
  • python中的集合、元祖、any()等方法介绍
    #{'a','b','c'}怎么变成‘a,b,c’my_set={'a','b','c'}result=','.join(my_set)print(result)#输出:'a,b,c'any()函数:any() 是Python内置的一个函数,用于判断可迭代对象中的元素是否至少有一个满足条件。它接受一个可迭代对象......
  • 博主的自我介绍
    不同时期的我2023/8/10我是一个本科生,现在是南京邮电大学计算机专业的一名学生,不知不觉已经来到了大三的时间段.大一的时候自己是测绘工程专业,然后当时痴迷设计,学了PS和AI等,但是不精通,自己没有这方面的天赋,后来大二转专业,因为要补好多大一没有学过的课程,导致这个一直......
  • IT 公司开源软件整理计划介绍
    为了方便大家检索开源软件,促进开源在中国的进一步发展,开源中国从去年年底就开始在整理IT公司或者组织的开源软件列表。目前已经有一个初步的列表,但很多公司的软件列表还不完善,也可能会因为归属问题有一些争议,欢迎大家给我们提出纠正和改进的意见和建议。此外如果贵公司开源软件数......
  • Hadoop集群启停命令以及Web UI界面的相关介绍
    1、Hadoop集群的启停命令(我是将文件都配置好了,直接使用最方便的启停命令就能进行使用)start-all.shstop-all.sh2、HDFS集群的WebUI界面主要是通过命令行:ifconfig获取到本虚拟机的ip地址,然后输入:ip:9870进行访问即可3、YARN集群的WebUI界面可以使用以下命令访问:ht......
  • iOS中NSBundle的介绍
    bundle是一个目录,其中包含了程序会使用到的资源.这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in).对应bundle,cocoa提供了类NSBundle.我们的程序是一个bundle.在Finder中,一个应用程序看上去和其他文件没有什么区别.但是实际上它是一个包含了nib文......
  • 01-[Linux][MFD]MFD模块介绍
    1、MFD功能介绍MFD(Multi-functionDevice)多功能设备,许多有共性的设备的集合,MFD由核心层(core)以及其下的“子设备”组成。从下文将会看到,MFD只是将设备注册到platform总线--因此,其子设备属于platform设备。它并没有对涉及到的设备或者驱动做实质性改变。但是,因为某些设备的共性,所以......
  • Go面经 | 成都Go面试这么卷?卷王介绍:游戏行业 3年经验 20k+
    Go最新面经分享:算法、并发模型、缓存落盘、etcd、actor模型、epoll等等...本文先分享2段面经,文末总结了关键问题的复盘笔记。一定要看到最后!求职者情况分享一下好友的最新面经。简单说下这位好友的情况:坐标成都,游戏行业,3年开发经验,最近2年做Go语言开发,1年Java/PHP工作经验。......