初识RabbitMQ:RabbitMQ基本概念和运行方式

大伙可以到我的RabbitMQ专栏获取更多信息

AMQP

AMQP全称Advanced Message Queuing Protocol(高级消息队列协议),是一个网络协议,是应用层协议的一个开放标准,为面向消息的中间件而设计。

基于此协议的客户端于消息中间件可以传递消息,一个平台中立、产品中立、语言中立的协议(并不受客户端、中间件产品、不同开发语言等条件的限制)。

Publisher(生产者)

产生消息的源

Consumer(消费者)

从MQ获取消息

Exchange(交换机)

  • 功能真的类似于网络交换机,是用来分发消息的
  • 将消息分发到不同的Queue中
  • 消息的分发到哪个Queue是根据Routes(路由规则)来决定的

Queue(消息队列)

用来存储消息的

RabbitMQ简介

2007年由Rabbit技术公司基于AMQP协议开发的RabbitMQ 1.0 发布。RabbitMQ使用Erlang语言开发,Erlang是专为高并发和分布式系统而生的语言。

  • Producer是生产者,与消费者Consumer都是客户端,通过Connection与RabbitMQ服务Broker通信
  • Connection用于和Producer、Consumer建立TCP连接
  • 由于每通信一次,客户端就和Connection建立一次连接是一种浪费的行为,所以Connection被设计成了内含很多channel的一个载体,解决了连接服用的问题,节约资源。
    • Channel是在Connection内部建立的逻辑连接,如果应用程序支持多线程,通常每个线程创建单独的channel进行通讯。AMQP协议包含了Channel id帮助客户端和Broker识别Channel,所以Channel之间是完全隔离的,从而使用Channel作为轻量级的Connection极大的建超了操作系统建立TCP连接的开销
  • Broker中有很多的Virtual Host(虚拟机),每个虚拟机内存在很多的Exchange和Queue,Virtual Host之间相互隔离,起到了逻辑分区的作用。不同的MQ用户在自己的Virtual Host中创建Exchange和Queue
  • Exchange通过Binding(一种绑定的过程)与Queue建立关系,是Message到达Broker的第一站,根据分发规则,匹配查询表中的routing key,分发Message到Queue中去。常用的类型有:direct(point-to-point)、topic(publish-subscribe)、fanout(multicast)
  • Message到达Queue之后等待被Consumer消费
  • Binding:Exchange和Queue之间的虚拟连接,Binding中可以包含routing key,Binding信息被保存在Exchange中的查询表,用于记录Message的分发依据

RabbitMQ的7中工作模式

简单模式

Work Queues

Publish/Subscribe(发布于订阅)

Routing(路由模式)

Topics(主题模式)

RPC远程调用模式

Publisher Confirms

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值