云计算分布式架构简介

分布式架构设计相当于集中式架构。集中式机构是由一台或多台主机组成的中心节点。

简介集中式架构的优劣势:

优势:开发部署运维方便,事务处理方便,没有分布式协作。

劣势:可用性低,一旦服务器宕机,系统立即不可用;扩展性极弱,只能升级单一服务器(比如大型机),成本高,迁移困难。

 

分布式的架构设计:分布在不同网络的计算机上,彼此仅通过消息传递进行通信和协调的系统。

特点:

1. 分布性;

机器PC等随地域分布,就有云计算上的region(区域)和az(可用区)的概念,应用随机器分布。

2. 对等性;

默认的分布式机器和应用是对等的,没有主从之分,每个节点都是副本(拷贝)。但可以通过人为制定或者算法决定主从,提高性能容错,但会有一致性问题。

3. 并发性

最大的挑战,比如对共享资源发起并发请求,就会在性能和一致性做一定的妥协。最大的难题之一。

4. 缺乏全局时钟;

没有先后顺序,分布式环境仅通过网络通信,时间是不对等的,顺序不可确定。表现为时间换算(时区的概念,北京时间是GMT-8,东8区)

5. 故障一定会发生。

由于网络是不可靠的,故障一定会发生,需要将故障规避之最低风险。

 

分布式最常出现的问题:

1. 网络延时,由于路由器、交换机或者光纤等造成网络延时,在分布式环境下,在分布式调用的时候可能被放大。

2. 网络分区域,比如云计算是跨AZ,会造成部分节点通信正常,部分通信失败。严重的时候会形成多个大脑,独立完成以前集群才能完成的功能,形成脑裂,一致性很难得到保障。

3. 请求状态,有成功、失败、超时

4. 节点故障,分布式环境每个节点都可能出现故障,机器宕机,服务僵死。参考亚马逊S3故障。此时需要对所有节点实现监控,实时告警等

 

分布式架构解决了,应用的扩展性,容错性,可用性,但随着分布式系统的壮大,会出现新的问题

比如:数据一致性

每个节点对其他节点默认是不可见的,多个节点可能同时操作一个资源,比如分布式事务一致性。

节点管控

每个节点相互独立,节点的状态和日志需要统一监控收集。

架构复杂,运维困难

架构需要解决分布式本身带来的网络通信问题,多个节点的协作问题。灰度发布,自动构建发布。

 

分布式的本质:分布通信;分布协作

通信问题我们不能解决,只能在硬件环境下功夫,比如多机房,跨AZ或者跨Region。

应用架构开发主要解决分布式协作问题

 

本文以

从Paxos到Zookeeper  分布式一致性原理与实践 [倪超著]

做理论基础,结合自己的实践经验,不当之处请指出。

下章介绍分布式协作的理论基础

 

 

 

你可能感兴趣的:(架构设计,分布式)