小白学分布式程序开发2-分布式架构下系统间交互的5种通信模式
2017-06-28 16:38
627 查看
分布式架构下系统间交互的5种通信模式
1、request/response模式(同步模式)
客户端发起请求一直阻塞到服务端返回请求为止。普通的HTTP请求都属于同步模式。
2、Callback(异步模式)
客户端发送一个RPC请求给服务器,服务端处理后再发送一个消息给消息发送端提供的callback端点,此类情况非常合适以下场景:A组件发送RPC请求给B,B处理完成后,需要通知A组件做后续处理。Jquery中的回调函数都是这种模式。
3、Future模式
对于多线程,如果线程A要等待线程B的结果,那么线程A没必要等待B,直到B有结果,可以先拿到一个未来的Future,等B有结果后再取真实的结果。
举例:小明同学一天丢失了自己的身份证,他就去派出所补办,警察叔叔说因为补办要几个月时间,先给小明一张临时身份证来用。小明拿了临时身份证后也可以办很多事情,等了三个月后小明拿到了补办的身份证。
另外在网站上常见的一个例子就是:网络图片的下载,刚开始是通过模糊的图片来代替最后的图片,等下载图片的线程下载完图片后再做替换。而在这个过程中主程序可以做一些其他的事情。
4、Oneway模式(单向模式)
只负责发送消息,不等待服务器回应且没有回调函数触发,即只发送请求不等待应答。此方式发送消息的过程耗时非常短,一般在微秒级别。
应用场景:适用于某些耗时非常短,但对可靠性要求并不高的场景,例如发送者程序向MQ中发送消息。
举例:发小广告的,只管发,不求结果
5、Reliable模式
为保证通信可靠,将借助于消息中心来实现消息的可靠送达,请求将做持久化存储,在接收方在线时做送达,并由消息中心保证异常重试。这是分布式架构程序开发中最常用的模式。
举例:看过潜伏吗?这里的B就相当于潜伏在军统的地下党余则成,这A就相当于他的上级领导,他们两相互知道对方的存在,但从不碰面,而C就是他们之间实现消息对接的传递者。上级领导A将行动指令交给消息传递者C,C用尽一切办法实现将指令传达给B余则成。而一旦C暴露,则会与一个替补者D接替C的工作。
不要忘记关注我们的微信公众号:小白程序猿!!
1、request/response模式(同步模式)
客户端发起请求一直阻塞到服务端返回请求为止。普通的HTTP请求都属于同步模式。
2、Callback(异步模式)
客户端发送一个RPC请求给服务器,服务端处理后再发送一个消息给消息发送端提供的callback端点,此类情况非常合适以下场景:A组件发送RPC请求给B,B处理完成后,需要通知A组件做后续处理。Jquery中的回调函数都是这种模式。
3、Future模式
对于多线程,如果线程A要等待线程B的结果,那么线程A没必要等待B,直到B有结果,可以先拿到一个未来的Future,等B有结果后再取真实的结果。
举例:小明同学一天丢失了自己的身份证,他就去派出所补办,警察叔叔说因为补办要几个月时间,先给小明一张临时身份证来用。小明拿了临时身份证后也可以办很多事情,等了三个月后小明拿到了补办的身份证。
另外在网站上常见的一个例子就是:网络图片的下载,刚开始是通过模糊的图片来代替最后的图片,等下载图片的线程下载完图片后再做替换。而在这个过程中主程序可以做一些其他的事情。
4、Oneway模式(单向模式)
只负责发送消息,不等待服务器回应且没有回调函数触发,即只发送请求不等待应答。此方式发送消息的过程耗时非常短,一般在微秒级别。
应用场景:适用于某些耗时非常短,但对可靠性要求并不高的场景,例如发送者程序向MQ中发送消息。
举例:发小广告的,只管发,不求结果
5、Reliable模式
为保证通信可靠,将借助于消息中心来实现消息的可靠送达,请求将做持久化存储,在接收方在线时做送达,并由消息中心保证异常重试。这是分布式架构程序开发中最常用的模式。
举例:看过潜伏吗?这里的B就相当于潜伏在军统的地下党余则成,这A就相当于他的上级领导,他们两相互知道对方的存在,但从不碰面,而C就是他们之间实现消息对接的传递者。上级领导A将行动指令交给消息传递者C,C用尽一切办法实现将指令传达给B余则成。而一旦C暴露,则会与一个替补者D接替C的工作。
不要忘记关注我们的微信公众号:小白程序猿!!
相关文章推荐
- 小白学分布式程序开发3-分布式系统的数据一致性问题
- 分布式系统中程序的两种通信模式
- 分布式系统的通信模式
- ASP.NET,C#.NET 通用权限系统组件源码使用说明,程序开发的尚方宝剑,程序架构标准参考,程序开发必备知识
- 大型网站系统架构实践(二)分布式模块之间的通信
- 第5章分布式系统模式 Broker(代理程序)
- 大型网站系统架构实践(二)分布式模块之间的通信
- SAP ABAP开发第一课:BC400系统架构与ABAP程序执行流程
- [原创]分布式系统开发学习之CS模式(一) --- 简介
- WDF驱动开发(3)- 用户模式程序和驱动的数据交互
- java分布式通信系统(J2EE分布式服务器架构)
- 第5章分布式系统模式 Broker(代理程序)
- 一款SNS战略休闲游戏开发笔记01——分布式系统逻辑架构设计的补充与讨论
- java平台上异构系统通信和分布式架构经常涉及的技术
- java分布式通信系统(J2EE分布式服务器架构)
- 分布式系统开发学习之CS模式(二)
- ASP.NET,C#.NET 通用权限系统组件源码使用说明,程序开发的尚方宝剑,程序架构标准参考,程序开发必备知识
- 基于.net平台remoting、DB2技术的大型分布式HIS系统架构及开发(项目架构师方向)
- 架构师方向:基于.net平台remoting、DB2技术的大型分布式HIS系统架构及开发
- 大型网站系统架构实践(二)分布式模块之间的通信