一、分布式应用和集群的区别
- 如果一个业务被拆分成多个子业务部署在不同服务器上,那就是分布式应用
- 如果时同一个业务部署在多台服务器上,那几十集群
二、系统间的通信方式
- 基于远程过程调用的方式
- 基于消息队列的方式
2.1 基于远程过程调用的方式(RPC)
RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
- 它是协议,是一种规范,需要有遵循这套规范的实现。典型的RPC实现包括Dubbo、Thrift、GRPC等
- 网络通信的实现是透明的,调用放不需要关心网络之间的通信协议、网络I/O模型、通信的信息格式等
- 跨语言,调用方实际上并不清楚对端服务器使用的是什么程序语言,对于调用方来说,无论使用的是何种程序语言,调用都应该成功,并且返回值也应该按照调用方程序语言能理解的形式来描述
2.2 基于消息队列的方式
基于消息队列的方式是指应用的某个系统负责发送消息,由关心这条消息的相应系统负责接受消息,并在收到消息后进行哥哥系统内的业务处理。
消息在被发送后可以立即返回,由消息队列来负责消息的传递,消息发布者只管将消息发布到消息队列,而不用管谁来取,消息使用者只管从消息队列中取消息而不管是谁发布的,这样发布者和使用者都不知道对方的存在