分布式系统以及方法论

一、分布式系统

随着互联网的高速发展,业务规模和数据量的不断增大,系统架构也在不断的演变。从单机集中式架构到集群部署架构,再到分布式架构,乃至分布式集群。

分布式和集群既能放在一起讲,也可以相互独立,它们的含义却是不同。

  • 分布式
    把一个大任务拆分成多个小的任务(或者说业务),部署在不同的物理机或者不同的服务。
  • 集群
    同一个业务,部署在不同的服务器上。

比如:一个工作任务需要8个小时才能完成。
分布式:8台机器,把任务分隔,同时跑起来,1个小时就能完成。
集群:8台机器,每个机器都跑相同的任务,最后完成还是需要8小时。

下面我们以JavaWeb系统为例,来搭建一个电商平台系统,随着业务的快速发展,以这个系统来更加清晰的观察系统架构的演变。

假设我们的系统分为下面几个模块:

序号 模块 功能
1 用户模块 用户注册和信息管理
2 商品模块 商品展示和信息管理
3 交易模块 交易以及支付结算

1、单机集中式

项目前期,产品知名度不高,访问量较小的情况下,通常会花钱买一台相对性能不错的服务器,将所有的软件和应用都部署在一台服务器上,这样就完成了系统的搭建。


单机集中式部署

2、集群

随着用户的增多,访问量的逐步上升,服务器负载会渐渐提高。这时候,通常先会把数据库和应用分离,释放单台服务器的压力。但是,在形势大好的情况下,产品的知名度越来越高,访问量也越来越大,很快也许单台应用服务器也承受不住压力。这时候,我们就要做集群部署。


集群架构部署

3、分布式

上面是一个很简单的集群架构,只是把WEB应用独立部署,但随着时间的推移,数据库压力早晚也遭不住。那么,数据库的集群也在所难免,当然主从模式下的读写分离往往是第一选择。再往下发展,根据业务特点可以考虑缓存、搜索引擎、分库分表...
随着业务的发展,应用的压力越来越大,代码量也越来越庞大。往往一次小的改动,就要集成发布很久,相关联的覆盖测试也难以控制。这时候,就考虑将应用拆分,将核心业务抽取出来,作为独立的服务。每个服务都独立开发和部署,服务之间采用RPC调用、消息队列、数据同步等机制传输数据。


Screenshot_3.png

我们看到,分布式系统就是一个硬件或软件组件,分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。它所有的计算和数据传递都依靠网络完成,在大型分布式系统中,如何同步节点状态、如何保证节点高可用、如何保证数据一致性、通信异常、网络分区等就是亟需解决的问题。

二、方法论

1、CAP理论

分布式系统有三个指标,在2000年的分布式计算原则研讨会上,由柏克莱加州大学的计算机科学家埃里克·布鲁尔提出。

英文 中文 含义
Consistency 一致性 数据在分布式环境下的多个副本之间保持一致性
Availability 可用性 分布式系统一直处于可用状态,对于请求总是能在有限的时间内返回结果
Partition tolerance 分区容错性 除非整个网络故障,分布式系统在任何网络或者单点故障时,仍能对外提供满足一致性和可用性的服务

CAP理论:一个分布式系统不可能同时满足一致性、可用性和分区容错性这三个基本需求,最多只能同时满足其中的两项;

满足 说明
满足AC,放弃P 将数据和服务都放在同一节点,避免因网络故障引起负面影响,可以保证系统的可用性和一致性
满足PC,放弃A 当节点故障时,受影响的服务需要等待一定的时间,在此时间内,系统无法正常对外提供服务
满足AP,放弃C 无法保证数据的实时一致性,但最终会保持一致性。

2、BASE理论

BASE理论是CAP理论的延伸,它主要是说,如果无法做到数据的强一致性,也可以根据自己的业务特点,采用合适的方式使系统达到最终一致性。

  • Basically Avaliable 基本可用
    当分布式系统出现故障时,允许损失部分可用性,保证系统的基本可用。比如双十一期间的,页面卡顿、服务降级等。

  • Soft State 软状态
    允许系统中的数据存在中间状态,既系统的不同节点的数据副本之间的数据同步过程存在延时,并认为这种延时不会影响系统可用性。

  • Eventually consistent 最终一致性
    所有的数据在经过一段时间的数据同步后,最终能够达到一致的状态。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容