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

安装RabbitMQ
安装过程还是比较大略的,完成之后须要检讨防火墙对应的端口是否可用。
二、运用处景1.削峰降流
这个很好理解,比如秒杀活动中,我们就常常用到行列步队来防止后台做事挂掉,同时也办理一部分并发的问题。
2.异步处理
如果用户注册成功时须要发注册邮件,传统的做法因此串行的办法进行,用户信息入库成功后发送邮件,这种办法严重影响做事真个相应韶光。
引入中间件之后,注册成功与否不再受到邮件做事的影响,做事端相应韶光也明显缩短,这种办法险些是所有高并发运用所采纳的一种策略。
3.架构解耦
例如淘宝双11购物节用户下单时订单系统利用关照库存系统、用户发帖时图片鉴定等场景,这里我们以发帖为例。
传统的做法是帖子入库之后调用各种RPC做事(积分RPC接口、图片鉴定RPC接口、数据剖析RPC)。
这里就存在一些坑在这里了,当有新的业务要接入的时候,发帖服务就须要随着做调度;或者某个RPC做事做了修正,发帖服务可能就会受到影响。做事之间存在严重的耦合,卖力这块做事的人估计会很难过。
怎么办理以上的坑呢?我们只要引入一个中间件就可以办理以上的问题,构造变为这样:
发帖服务只须要跟中间件打交道,其他做事方也只须要订阅就可以了,各个做事之间的关系就不用再牵丝扳藤了。
小结如果调用链高下文不存在强依赖关系,利用中间件不失落为一种合理的选择。