分布式架构| 青训营笔记

95 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 17 天

什么是分布式架构

分布式系统是一个由硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。常见的分布式系统会拆分出多个功能不同的模块,比如订单模块,用户模块和产品模块等,各个模块只负责单一的功能,模块之间通过RPC(Remote Process Call,即远端程序调用)的方式进行调用。

传统的单体应用架构

相反,如果一个系统所有的业务模块代码都部署在一台机器上面对外提供服务,这就是单体应用的架构。像我们开发原始的Java Web项目一样,将整个应用交由Tomcat运行,各个业务模块包括数据库都集中在一台机器上,这样的系统就是单体应用系统。

分布式架构所解决的问题

参照单体应用架构的描述可以得知,系统都部署到一台机器上的弊端是,当系统业务增长到一定程度的时候,单机的硬件资源将无法满足需求,因为单台机器的处理能力毕竟有限,且资源也不一定能无限扩充。

集群

因为分布式架构的存在,集群这一概念就实现了。

将多个功能一致的系统部署在多台机器上,形成一个整体对外提供服务,这个整体就称为集群。使用集群可以提升系统的服务能力和可用性。

分布式系统所存在的问题

通信异常

从集中式到分布式,必然引入了网络因素,而由于网络本身的不可靠性,因此就引入了额外的问题。分布式系统各节点之间的网络通信能够正常进行,其延时也会远大于单机操作,在消息的收发过程中,消息丢失和消息延迟变得十分普遍。

网络分区

当网络发生异常情况时,导致分布式系统中部分节点之间的网络延时不断增大,最终导致组成分布式胸的所有节点中,只有部分节点之间能够正常通信,而另一些节点则不能,这种现象称之为网络分区,当网络分区出现时,分布式系统会出现局部小集群,在极端情况下,这些局部小集群会独立完成原本需要整个分布式系统才能完成的功能,包括对数据的事务处理,这就对分布式一致性提出了非常大的挑战。

三态

由于网络可能会出现各种各样的问题,因此分布式系统的每一次请求与响应,存在特有的三态概念:成功、失败、超时。当网络在异常情况下,可能会出现超时现象,通常由以下两种情况:1. 由于网络原因,该请求并没有被成功地发送到接收方,而是在发送过程就发生了消息丢失现象。2. 该请求成功的被接收方接受后,并进行了处理,但是在将响应反馈给发送方时,发生了消息丢失现象。

节点故障

节点故障是指组成分布式系统的服务器节点出现宕机或僵死现象,每个节点都有可能出现故障。

参考

如有错误或疏漏,还望海涵。