AMQP协议及其核心概念Channel、Virtual Host、Exchange

AMQP协议

AMQP(advanced message queuing protocol)是一种协议,全称为 “高级消息队列协议”。更多信息请自行百度。

AMQP协议模型
上图也可以充分展示 RabbitMQ 的工作模型,依据该图有助有理解RabbitMQ的核心工作组件;其中,每个 RabbitMQ 消息服务代理至少有一个 Virtual host虚拟主机(默认/),每个 Virtual host虚拟主机 中的 Exchange交换机、Queue队列以及Exchange交换机与Queue队列之间的绑定BindingKey都是隔离相互独立。
Producer(生产者)和Consumer(消费者)通过与RabbitMQ服务建立 Connection来保持TCP长连接,然后在 Connection 的基础上建立若干Channel 信道,用来发送与接收消息。

Connection(连接)

不管是 Producer(生产者)还是 Consumer(消费者),生产者要想发送消息给Exchange或者消费者想从Queue中消费消息,首先就要与RabbitMQ服务建立连接,这个连接就是 ConnectionConnection 是一个TCP长连接

Channel(信道)

Channel可以实现线程间隔离

Channel是在 Connection 的基础上建立的虚拟连接RabbitMQ中大部分的操作都是使用 Channel 完成的,比如:声明Queue、声明Exchange、发布消息、消费消息等。

此时是否有这样一个疑问:既然已经有了Connection,完全可以使用Connection完成Channel的工作,为什么还要引入Channel这样一个虚拟连接的概念呢?因为现在的程序都是支持多线程的,如果没有Channel,那么每个线程在访问RabbitMQ服务时都要建立一个Connection这样的TCP连接,对于操作系统来说,建立和销毁TCP连接是非常大的开销,在系统访问流量高峰时,会严重影响系统性能。

Channel就是为了解决这种问题,通常情况下,每个线程创建单独的Channel进行通讯,每个Channel都有自己的 channel id 帮助Broker和客户端识别Channel,所以Channel之间是完全隔离的
ConnectionChannel之间的关系可以使用光纤电缆比喻,如果把Connection比作一条光纤电缆,那么Channel就相当于是电缆中的一束光纤

Virtual Host(虚拟主机)

  • 对于数据库而言;不同的项目应用会使用独立的库进行数据存储;同理,针对不同的项目应用可以定义不同的Virtual host虚拟主机。即Virtual host虚拟主机可以用来隔离不同的应用程序
  • Virtual host虚拟主机需要和User用户进行绑定,主要是用户权限隔离

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

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
img

内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)**
[外链图片转存中…(img-1nPaVJjV-1712510478907)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值