博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RPC和MQ各自适合的应用场景
阅读量:6440 次
发布时间:2019-06-23

本文共 695 字,大约阅读时间需要 2 分钟。

RPC比较适合- 客户端调用哪个服务器比较明确

  • 调用需要立即得到返回结果
  • 架构简单
      在一个由多个微服务构成的大系统中,某些关键服务间的调用应当在较短的时间内返回,而且各个微服务的专业化程度较高,同一个请求的关注者只有一个。这个时候就应该用RPC。   比如在一个ERP系统中,有一个管理仓储的微服务,以及一个负责订单的微服务。新建订单时需要查知当前的存货是否充足,如果不充足就通知用户;提交订单时预订指定数量的货物,如果此时货物不错,也要终止订单的提交,并通知用户。显然在这种场景下是不允许较大的延迟,否则会影响用户体验。所以应该使用RPC,及时返回仓储情况。
    MQ比较适合
  • 消息的发送者和消费者需要解耦的情况
  • 发送者并不明确谁是消费者
  • 发送者并不关心谁来消费消息
  • 各个消费者可以从不同的角度入手处理消息
  • 消费者的处理结果也不返回给发送者
  • 消息的发送和处理是异步的
  • 消息的关注者不止一个
      在一个由多个微服务构成的大系统中,会有一些非关键服务,用来执行一些不需要立刻得到结果的计算。而且它们的计算结果并不会返回给消息的发送者。这个时候就应该使用MQ。   比如在一个ERP系统中有一些日志服务、业务监控服务等。这些服务会发布一些系统事件,针对这些事件可能有多个应用关注。对于日志服务,当系统出现某些异常情况时需要浏览日志,查找问题的根源;也可以在分析系统运行的瓶颈时提供关键数据。对于业务监控系统,例如货物入仓出仓的消息,可以被报表系统关注,生成报表;也可以被配货系统关注,及时补足所需库存。

转载于:https://blog.51cto.com/tenderrain/2152674

你可能感兴趣的文章
Linux adb insufficient permission
查看>>
WebWorker初体验
查看>>
Java 关键词
查看>>
Apache使用fcgi方式与PHP结合
查看>>
Java命令行运行参数说明大全
查看>>
JavaScript输出一个字符串中出现次数最多的字符
查看>>
[网络通信]同一socket使用两个线程分别收发,如何关闭socket
查看>>
SVN迁移
查看>>
CentOS安装Tomcat后远程无法访问8080
查看>>
cenots下从官网安装composer无法安装的解决办法
查看>>
关于CDockablePane类的创建与使用
查看>>
程序员常用技巧
查看>>
分布式事务-消息补偿机制
查看>>
论述-Sqlite3 开发优化
查看>>
站内信 设计
查看>>
JFace 的treeViewer的双击展开或收缩
查看>>
Android开发环境搭建之Android adb
查看>>
cookie
查看>>
Fvwm-指定字体启动xterm
查看>>
file_get_contents("php://input")的使用方法
查看>>