#MySQL#RabbitMQ 的使用场景,安装,爬坑必备。


#MySQL#RabbitMQ 的使用场景,安装,爬坑必备。
文章图片
#MySQL#RabbitMQ 的使用场景,安装,爬坑必备。
文章图片
#MySQL#RabbitMQ 的使用场景,安装,爬坑必备。
文章图片
#MySQL#RabbitMQ 的使用场景,安装,爬坑必备。
文章图片
#MySQL#RabbitMQ 的使用场景,安装,爬坑必备。
文章图片
#MySQL#RabbitMQ 的使用场景,安装,爬坑必备。
文章图片
#MySQL#RabbitMQ 的使用场景,安装,爬坑必备。
文章图片
#MySQL#RabbitMQ 的使用场景,安装,爬坑必备。
文章图片
#MySQL#RabbitMQ 的使用场景,安装,爬坑必备。
文章图片
#MySQL#RabbitMQ 的使用场景,安装,爬坑必备。
RabbitMQ消息队列是一种十分复杂的架构 , 引入它有很多好处 , 但是也得针对它带来的坏处做各种额外的技术方案和架构来规避 。 引入MQ系统复杂度提升了一个数量级 , 但是在有些场景下 , 就是复杂十倍百倍 , 还是需要使用MQ而且MQ也是支持多个操作语言 , 比如Java比如php比如.NET , 比如node.js 。 今天要分享的就是 , MQ的简介 , 和使用场景 , 和如何安装MQ 。 使用场景是比较重要的实战部分 , 安装过程中也会出现不少坑 , 一不小心也会让你想吐 。
MQ的简介 , RabbitMQ是使用Erlang语言开发的开源消息队列系统 , 基于AMQP协议来实现 。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、 安全 。 AMQP协议更多用在企业系统内 , 对数据一致性、稳定性和可靠性要求很高的场景 , 对性能和吞吐量的要求还在其次 。
MQ的使用场景 , 总结了三个使用场景 , 都是在使用MQ过程中相当重要的点了 。 第一个场景就是解耦(为面向服务的架构(SOA)提供基本的最终一致性实现) , 第二个场景 , 异步提升效率用户注册后 , 需要发注册邮件和注册短信 。 传统的做法有两种 , 串行的方式 , 并行方式 。 第三个场景 , 流量削峰 , 流量削峰也是消息队列中的常用场景 , 一般在秒杀或团抢活动中使用广泛 。 以此了解以上三个使用场景 。
第一种场景解耦 , 在电商行业更多的是注重用户体验 , 用户下单后 , 订单系统需要通知库存系统 。 传统的做法是 , 订单系统调用库存系统的接口 。 传统模式的缺点:假如库存系统无法访问 , 则订单减库存将失败 , 从而导致订单失败 , 订单系统与库存系统耦合
而引入消息队列之后就会变成这个样子 , 订单系统:用户下单后 , 订单系统完成持久化处理 , 将消息写入消息队列 , 返回用户订单下单成功 , 库存系统:订阅下单的消息 , 采用拉/推的方式 , 获取下单信息 , 库存系统根据下单信息 , 进行库存操作 , 在下单时库存系统不能正常使用 。 也不影响正常下单 , 因为下单后 , 订单系统写入消息队列就不再关心其他的后续操作了 。 实现订单系统与库存系统的应用解耦 , 为了保证库存肯定有 , 可以将队列大小设置成库存数量 , 或者采用其他方式解决 。 订单系统主要只是负责通知而不是处理 , 库存系统注重于订阅 。