第二章、分布式计算范型
消息传递范型
软件消息传递(Message passing)是一种通信的形式,在并发计算、并行计算、面向对象编程与进程间通信中使用。在这种模式中,进程或对象以发送及接收消息的方式来达成同步,是进程间通信的基本途径.(注:远程过程调用范型也是属于消息传递范型中的一种).具体过程就是一种链式反应:A发送数据,B接收数据,B接收数据后有可能在触发下一个请求,A继续接收这条请求,如此反复.
客户/服务范型
这个范型没什么好说的,就是一台服务器为多台客户机提供服务,HTTP,FTP,DNS都属于这种范型.
P2P范型
点对点,每台计算机的角色是对等的,既可以充当服务器提供服务,又可以充当客户机使用享受服务器提供的服务,很多应用如即时消息传输,文件传输都会使用到这种范型,比特币也是这种范型的应用.
消息系统范型
消息系统范型基于消息传递范型,是指有专门的服务器提供各系统间消息的传递,让其他系统不在关心消息具体的发送细节,使得各系统间的耦合度更低,这类系统通常被成为消息中间件,如RabbitMQ,ActiveMQ等等,消息系统模型可以分为
- 点对点
在点对点范型中,消息系统其实只是起到了消息转发的功能.除此之外,还会有消息暂存功能.JMS就是这种范型的实现. - 发布/订阅
发布/订阅范型也是很常见的一种范型,与设计模式中的观察者模式有些类似,这种范型中生产者产生的消息可以被多个消息接收者所消费.
目前大部分的消息中间件同时支持这两种范型.
远程过程调用范型
远程过程调用(RPC),其实就是对底层的网络编程进行的进一步抽象,使得在程序员