分布式系统概览

分布式系统

分布式系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。

加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。Brewer认为在设计一个大规模的分布式系统时会遇到三个特性:一致性(consistency)、可用性(Availability)、分区容错(partition-tolerance),而一个分布式系统最多只能满足其中的2项。2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP。之后,CAP理论正式成为分布式计算领域的公认定理。

本博文主要参考资料:

  • 《分布式系统概念与设计》
  • “分布式系统 MIT”课程
  • 对于靠前的内容主要学习概念,靠后的内容关注具体技术

分布式系统的重要理念

  • 并行
  • 容错
  • 解决物理问题
  • 解决安全问题

分布式系统的主要挑战

  • 异构型:计算机和网络存在异构型
  • 开放性:系统组件的关键接口是否开放
  • 安全性:系统内信息的机密性、完整性和可用性
  • 可伸缩性:能够面对不同规模高效运转
  • 故障处理:故障检测、容错、故障恢复等
  • 并发性:要在并发环境中保证操作正确
  • 透明性:对用户和应用程序员屏蔽分布式系统组件的分离性
  • 服务质量:保证可靠性、安全、性能等

分布式体系结构

  • 通信实体:对象、组件、web服务
  • 通信泛型:进程间通信、远程调用(RPC)、间接通信

进程间通信

进程间通信基于传输层TCP和UDP协议,体现为套接字、消息传递、组播、覆盖网络等内容。其中组播指发送方将IP数据包传送给组成组播组的一组计算机;覆盖网络的概念指在已有网络的基础上构造不同的虚拟网络,对应特定的分布式应用。

远程调用

远程调用,是进程间函数的相互调用,是进程间通信 IPC(Inter-Process Communication)的一种方式。通过远程调用,一个进程可以看到其他进程的函数、方法等。从这一角度,根据进程是否部署在同一台机器上,远程调用可以分为如下两类:本地过程调用(Local Procedure Call,LPC),是指运行在同一台机器上的进程之间的互相通信,即在多进程操作系统中,运行的不同进程之间可以通过 LPC进行函数调用。远程过程调用(Remote Procedure Call,RPC),是指不同机器中运行的进程之间的相互通信,某一机器上运行的进程在不知道底层通信细节的情况下,就像访问本地服务一样,去调用远程机器上的服务。

最基础的请求-应答协议基于套接字实现,两种常用的远程调用机制为远程过程调用 RPC(Remote Procedure Call) ;以及远程方法调用 RMI(Remote Method Invocation)。

请求-应答协议

远程过程调用 RPC

RPC 就是调用方采用参数传递的方式,通过调用本机器上的一个函数或方法,去执行远程机器上的函数或方法(可以统称为服务),并返回结果。在整个过程中,RPC 会隐藏具体的通信细节。

注意HTTP通讯就是RPC的一个实例,后端服务器之间可以直接采用HTTP协议进行通讯,但是定制RPC可以设计更加符合应用场景的高效通讯方式。

远程方法调用 RMI

与 RPC的区别:RMI支持对象应用作为参数传递。远程一旦接收对象引用,就能够使用远程调用方法访问该对象,而不是通过网络传输对象。

间接通信

中间件

分布式文件系统

名字服务

时间和全局状态

协调和协定

事务和并发控制

关键词

  • 微服务
  • 集群
  • RPC
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值