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

上海青浦做网站广州企业注册一网通

上海青浦做网站,广州企业注册一网通,科协建设网站 方案,Sensei 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/14343236/

相关文章:

  • html5 开发的网站wordpress支持代码高亮
  • 关于节约化建设网站的表态发言ui交互设计是什么意思
  • 网站开发与app开发原理淄博云网信息技术有限公司
  • wordpress 站点转移企业qq出售平台
  • 那些网站是php做的app软件下载网站免费进入
  • 网站制作经典案例wordpress无法登陆
  • 专业做企业网站什么是建设网站工具
  • 怎样给网站做优化网站类网站开发犯罪吗
  • 网站主体备案wordpress制作网页教程
  • 响应式网站开发现状网络规划设计师教程第2版2021版pdf
  • 网站开发从什么学起甘肃省集约化网站建设试点
  • 石家庄网站建设找汉狮佛山应用软件开发
  • 数据过滤网站模板下载最新体育新闻足球
  • 在线做qq空间的网站网站群建设
  • 做网站如何找项目政务门户网站建设思想
  • 南宁cms建站网站开发的技术简介
  • 电子商务是建网站遵义网站建设90kj
  • 网站 谁建设 谁负责商会 网站模板
  • 网页视频提取软件seo外包多少钱
  • 网站前台设计模板大学生网页设计作业成品
  • 湛江网站建设方案服务进入百度网首页
  • 潍坊做电商的网站北京市违法建设投诉网站
  • 怎么连接网站的虚拟主机广东东莞建设网
  • 什么网站备案容易审核创意智能产品设计
  • 西安网站建设风尚视频投票网站怎么做
  • 专业的图纸设计网站蔚县网站建设
  • 设计网站包含的功能模块网站开发难吗2008
  • 域名网站账号垂直门户网站都有什么
  • 建设厅网站上怎么实名认证成都网站推广哪家专业
  • 网站注册怎么做青岛网络seo公司