村长 发表于 2020-12-5 22:29:09

【LSP】rabbitmq(生命周期,confirm模式,延迟队


http://cdn.u1.huluxia.com/g4/M01/5A/EB/rBAAdl9u2DmARnudAACt4WdlvYs557.jpg
什么是消息队列?

就是生产者生产一条消息,发送到这个rabbitmq,消费者连接rabbitmq并且进行消费,生产者和消费者并需要知道对方是如何工作的,从而实现程序之间的解耦,异步和削峰,这也就是消息队列的作用。

使用的场景也有很多,比如用户支付购买之后的发送短信,增加用户积分等等,只要能将业务逻辑抽象出来,就能很好得使用它。



下面进入正题:

先来介绍一下基本概念和参与生命周期的各个成员。

publisher:消息生产者,负责创建消息,并发送到代理服务器(rabbitmq)

message:发送的消息,由 有效负载(payload) 和 标签 (label) 组成

exchange:交换器,负责接收消息并路由给服务器的队列

queue:消息队列,就是消息最后要去的地方。然后等待消费者取走并消费

consumer:消息消费者,与生产者对应,程序的另外一方,负责消费信息,并完成相应的业务逻辑

channel:信道,在tcp之上建立的通道,负责传送消息。队列的传输都是基于信道来完成的。

broker:消息队列服务器实体

下面来解析一下这张图,这张图是网上找的,虽然不够详细,但是勉强能用。
http://cdn.u1.huluxia.com/g4/M01/5A/EB/rBAAdl9u2DqADhkMAADWAtEtSj0063.png



准备前提,开启rabbitmq服务,生命队列和交换器,并将两者进行绑定。



生产逻辑:

publisher 通过 broker服务器ip 和 端口 尝试建立与 broker 的 tcp 连接,连接成功之后,会尝试验证验证用户名和密码,如果错误,则拒绝访问。

验证成功之后,在tcp上建立一个 信道(channel) ,publisher 通过信道,发送消息到 broker,进入指定的虚拟主机virtual host。然后查找到交换器绑定的队列,并将消息推送进入队列。

http://cdn.u1.huluxia.com/g4/M01/5A/EB/rBAAdl9u2DqAAOuFAAEPfDCOPA4220.png

消费逻辑:

consumer 建立连接和验证和生产者一样。接下来通过队列名,直接找到队列进行监听并消费。



有几个比较重要的知识点:

1.rabbitmq的交换器并不是真正意义的交换器,它本质上其实就是一张表,里面存放和交换器名称和消息队列的映射关系。所以说队列的传输都是通过信道来完成的。

2.信道存在的意义在于 创建和销毁tcp连接非常消耗资源





交换器的类型

当生产的消息进入虚拟主机时,会去寻找一张表,就是交换器和队列映射关系的一张表。而交换器的类型也分了好多种,可以根据不同的场景自由选择。

目前总共分了4种,direct,fanout,topic,headers。其中headers因为性能问题几乎不在使用,这里就不做过多的讨论。

1.direct

direct是直接,完全匹配,单播的模式。

php简单代码实现:http://cdn.u1.huluxia.com/g4/M01/5A/EB/rBAAdl9u2DuAJl8NAAIRGcQa5Dk514.jpg

伴我多久 发表于 2020-12-6 10:36:10

是爷们的娘们的都帮顶!大力支持

无量科技 发表于 2020-12-7 08:36:20

专业抢沙发的!哈哈

大司命 发表于 2020-12-7 15:52:58

顶顶更健康

68079330 发表于 2020-12-10 13:57:36

支持,赞一个
页: [1]
查看完整版本: 【LSP】rabbitmq(生命周期,confirm模式,延迟队

村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科
技平台参与或发布项目定制各种软件就来村长黑科技平台

本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件的破解分析文章、破解分析视频、补丁、注册机和注册信息,

仅限用于学习和研究软件安全的目的。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习破解分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,

请购买注册正版软件,获得正版优质服务!不允许将上述内容私自传播、销售或者其他任何非法用途!否则,产生任何法律责任,一切后果请用户自负,与本网站无关!如有侵权或非法用途请举报!请发送到邮箱:cxphj8@foxmail.com

《意见反馈》或《截图指定页面备注》发送到邮件,收到后24小时内删除,禁止用户学习使用关掉用户【学习使用权】!