首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RabbitMQ 学习笔记一:基础篇

前天写了一个基于 RabbitMQ 技术实现的异步消息推送的功能(只是推了个消息!没错,连 MQ 是啥都不知道)。当然不能不知道了,决定深入了解一下。本文章介绍的是 MQ 的一些基础知识,包括关键词以及常规的收发流程。内容“深”一点的学习笔记和教程要等我慢慢消化后分享出来。慢慢等吧!:)

RabbitMQ 是什么?

RabbitMQ是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP 等,支持 Ajax。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲和消息分发的作用....

关于流程,说的啥玩意?简单点!!

有个寄件人(Producter)想寄快递(Message)。现在有一个快递公司(Broker),寄件人(Producter)提前联系(Channel)好快递中心(Exchange),填好快递单(Binding),并快递(Message)交给快递中心(Exchange)。快递中心(Broker)会根据寄件人(Producter)填写的信息,如:收件地址(RoutingKey),去分发(Deliver)快件到各地的菜鸟驿站(Queue)等待收件人(Consumer)取件。完毕~寄个快递嘛,应该看得懂的吧...

附上本人呕血创作的流程图一张

那么,这中间的几个英文标注的词分表表示什么呢?

Producter , 消息生产者,一般是指产生消息的程序;

Message , json化的消息数据,经交换机转发后存在指定队列里面;

Broker , 表示消息队列服务器的实体,一切处理都在这里面进行;

Exchange , 俗称转发器/交换机,起到接受生产者发来的消息并转发给队列的作用;

Binding ,动词绑定,指代 Exchange 和 Queue 的绑定操作;

RoutingKey,Exchange 和 Queue 绑定是通过 RoutingKey 关联;转发器通过一个RoutingKey 去绑定一个 Queue;

Deliver, 动词转发,指代 Exchange 拿到消息后转发的操作;

Queue,队列,用于存储分发过来的 Message;

Consumer,消费人,一般指消息的处理程序;

Exchange 和 Queue 关系好乱...

因为一个 Exchange 可以绑定多个 Queue,一个 Queue 也能同多个 Exchange 进行绑定。而且Exchange 默认自带几种转发类型,包含一对一的 Direct 模式,一对多的广播的模式,还有啥主题模式,往下看。

收尾

本篇把 RabbitMQ 的一部分主要概念都解析了一遍,他的工作流程也画了流程图。请求斧正,有不对的地方一定要留言或者私信我改正!!知识要变成自己的,需要一个“缝合”的过程,计划做分享的目的就是这个。具体的使用,见下一篇分享:调试篇。里面会记录自己本地测试安装及代码调试的过程。时间暂定下周吧,周末回去研究下。PS:好久没用 Macdown,我发现我 Markdown 的排版都不会了,丑就丑点,凑合看吧。:)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180511G0SLR800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券