当前位置: 首页 > news >正文

佛山提供网站设计报价中国最新新闻头条

佛山提供网站设计报价,中国最新新闻头条,深圳工程建设信息网,wordpress 替换编辑器1、初识MQ MQ全称是Message Queue#xff0c;消息队列#xff0c;多用于系统之间进行异步通信。队列的概念数据结构中有详细介绍过#xff0c;先进先出#xff0c;消息队列就是存储消息的数据结构。 同步调用和异步调用两者之间的区别#xff1a; 同步调用#xff1a;发…1、初识MQ MQ全称是Message Queue消息队列多用于系统之间进行异步通信。队列的概念数据结构中有详细介绍过先进先出消息队列就是存储消息的数据结构。  同步调用和异步调用两者之间的区别 同步调用发送方需要等待接收方的响应待接收方返回结果之后发送方才会进行后续的处理逻辑。因此同步调用是阻塞模式。 异步调用发送方不需要等待接收方的响应发送方将调用消息发到接收方之后就会继续进行后续的处理逻辑。当被调用的函数或方法执行完成后再回调处理结果。这样可以提高程序的并发性充分利用计算机资源提高程序的运行效率。异步调用是非阻塞模式。 其中MQ是实现系统之间异步通信的常用方式。 如下是两种调用方式的示意图 同步调用 异步调用 2、MQ的优势和劣势 下面介绍使用MQ的优势和劣势其实也是对比【同步调用】和【异步调用】之间的优势劣势。 2.1 优势  2.1.1 应用解耦 考虑上述这样一个购物场景用户在订单系统进行下单在同步调用的方式下订单系统会依次调用库存系统、支付系统、物流系统并且在每个系统都返回响应结果之后才会进行后续调用执行。其中调用部分的代码都在订单系统中。后续如何系统进行扩展下单的时候需要调用X系统那么订单系统部分的代码就需要进行修改增加X系统的调用。导致系统之间的耦合性过高扩展极为不便。 而且如果下单的时候调用库存系统失败库存系统短暂停止服务2分钟那么后续的环节也都会执行失败。即使后面库存系统恢复服务该笔下单也会失败。 但是如果我们借助MQ把系统建设为异步调用的方式订单系统把订单发布到MQ之后订单系统继续后续的处理逻辑。库存系统、支付系统、物流系统分别订阅MQ中的消息进行处理之后如果需要再把X系统、Y系统纳入订单系统也不需要进行修改只需要加入订阅即可。这样系统之间就完成了解耦。 而且如果下单的时候恰好遇到库存系统短暂停止服务2分钟也不会导致下单失败。后面库存系统恢复服务从MQ中取出订单进行处理即可。 所以借助MQ我们实现了应用之间的解耦。 2.2 异步提速 还是上面的购物场景同步调用的方式相当于是串行执行所以整个环节完成之后耗时920ms对于用户来讲会感觉到系统响应缓慢体验不好。 但是如果通过MQ实现异步调用订单系统发送到MQ之后就把“下单成功”的消息返回给用户之后库存系统、支付系统、物流系统分别从MQ中取消息进行处理但是这个处理MQ消息的过程我们就不用等待。整个流程的时间只有25ms大大提升了响应速度和用户体验。 但是如果库存系统、支付系统、物流系统中的某个系统处理的时候判断订单不能执行比如缺少库存怎么办这个时候根据库存系统返回的消息订单系统的回调函数会更新订单状态更新为【订单下单失败库存不足】。所以一开始返回的“下单成功”消息更准确的来讲应该是“下单指令发送成功”但是订单的最终状态应该等待后面三个系统的处理结果最终决定。 2.3 削峰填谷 假设我们A系统每秒钟最大处理1000请求当请求突然增多每秒钟来5000请求就会造成积压系统处理缓慢用户后面发来的请求就会等待比较长的时间。 如果我们借助MQ请求都先进入MQ然后A系统按照自己的最大处理能力每秒钟从MQ中取出1000个请求进行处理系统承担的压力就会减小消息都积压在MQ中不会积压在系统端超出系统的最大承受能力。 2.4 优势总结 2.2 劣势 2.2.1 系统可用性降低 引入MQ之后系统之间的交互都通过MQ进行MQ的稳定性非常重要一旦MQ宕机整个系统就会瘫痪因此必须保证MQ的高可用。 2.2.2 系统复杂度提高 引入MQ之后需要考虑 消息有没有被重复消费消息丢失怎么处理消息传递的顺序性怎么保证 2.2.3  一致性问题 A系统通过MQ向B、C、D系统发送消息如果B系统和C系统处理成功D系统处理失败消息数据处理的一致性如何保证。 2.3 总结 通过上面的介绍我们进行总结在什么样的场景下我们可以选择使用MQ 生产者不需要从消费者处获得反馈在尚未获得反馈的情况下不影响生产者后续的执行。容许内容短暂的不一致性以上面的购物场景为例订单系统发送订单消息之后返回下单成功的消息但是这个时候库存系统、支付系统、物流系统尚未处理完成库存尚未减少账户金额尚未扣减和下单成功的状态是不一致的。系统需要能够容许这种数据不一致的情况短暂存在。确实有效果且利大于弊使用MQ的优势获得的收益大于我们维护MQ付出的成本。  3、常见的MQ产品 参考资料 1、1_MQ的重要性_哔哩哔哩_bilibili 2、https://blog.csdn.net/weixin_44031029/article/details/124169861 3、blog.csdn.net/hong521520/article/details/106671930
http://www.hkea.cn/news/14384296/

相关文章:

  • 做有支付系统的网站一般需要多少钱安全培训网站
  • 如何做英文网站外链wordpress菜单栏改成小写
  • h5做网站教程山西免费网站建设
  • 游戏网站建设收费明细顶呱呱集团 网站建设
  • 建设网站的内容规划简洁个人博客网站模板下载
  • 青海网站建设策划建设网站 系统占用空间
  • 龙泉公路建设投资有限公司网站大连模板建站软件
  • 备案 网站负责人中国工厂网
  • 最简单的网站高端品牌名称
  • 营销型网站建设风格设定包括哪些方面做网站需要的课程
  • 网站开发需要如何压缩代码一般网站建设
  • cadisen卡迪森手表网站免费搭建单页网站
  • 郑州怎么做网站排名万网二手已备案域名
  • 湖北微网站建设价格寿光市网站建设
  • 做网站需要什么花费谷城网站定制
  • 网站开发8080无法访问此页面关键词怎么选择技巧
  • 台前网站建设电话汽车行业网站建设维护服务
  • 淮北建设工程质量安全站网站浙江省专业网站制作网站建设
  • flash型网站网址2022年楼市最新政策
  • 南宁 建网站知道网站域名怎么联系
  • 哈尔滨建设工程招聘信息网站湖南搜索引擎推广平台
  • 网站开发如何跟客户沟通需求简历在线编辑免费
  • html5的网站设计二级域名分发网站
  • 深圳网站制作设计猎场第几集做的网站推广
  • 成都网站建设qghlwordpress注册免邮件
  • 做的网站在小窗口中怎么保持中间网站建设 开发网站代码
  • 上海网站建设与设计浙江中钦建设有限公司网站
  • c2c电子商务网站食品建设网站
  • 珠海网站设计京东联盟 wordpress
  • 怎么做自己的外卖网站wordpress小清新模板