首页 » 网站建设 » php新闻队列中央件技巧_消息队列中心件高并发互联网架构中的利器

php新闻队列中央件技巧_消息队列中心件高并发互联网架构中的利器

访客 2024-11-10 0

扫一扫用手机浏览

文章目录 [+]

RabbitMQ是基于AMQP协议的一个开源实现,Server端用Erlang措辞编写,支持C、Java、Python、PHP、Ruby等常见措辞。
它除了具备精良的性能之外,更主要的一点是支持的持久化,的可靠性可以得到相应的保障。

一、安装过程

大略附上一个CentOS系统下的安装教程。

php新闻队列中央件技巧_消息队列中心件高并发互联网架构中的利器

安装依赖

php新闻队列中央件技巧_消息队列中心件高并发互联网架构中的利器
(图片来自网络侵删)

安装RabbitMQ

安装过程还是比较大略的,完成之后须要检讨防火墙对应的端口是否可用。

二、运用处景

1.削峰降流

这个很好理解,比如秒杀活动中,我们就常常用到行列步队来防止后台做事挂掉,同时也办理一部分并发的问题。

2.异步处理

如果用户注册成功时须要发注册邮件,传统的做法因此串行的办法进行,用户信息入库成功后发送邮件,这种办法严重影响做事真个相应韶光。

引入中间件之后,注册成功与否不再受到邮件做事的影响,做事端相应韶光也明显缩短,这种办法险些是所有高并发运用所采纳的一种策略。

3.架构解耦

例如淘宝双11购物节用户下单时订单系统利用关照库存系统、用户发帖时图片鉴定等场景,这里我们以发帖为例。

传统的做法是帖子入库之后调用各种RPC做事(积分RPC接口、图片鉴定RPC接口、数据剖析RPC)。

这里就存在一些坑在这里了,当有新的业务要接入的时候,发帖服务就须要随着做调度;或者某个RPC做事做了修正,发帖服务可能就会受到影响。
做事之间存在严重的耦合,卖力这块做事的人估计会很难过。

怎么办理以上的坑呢?我们只要引入一个中间件就可以办理以上的问题,构造变为这样:

发帖服务只须要跟中间件打交道,其他做事方也只须要订阅就可以了,各个做事之间的关系就不用再牵丝扳藤了。

小结

如果调用链高下文不存在强依赖关系,利用中间件不失落为一种合理的选择。

标签:

相关文章