加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 云计算 > 正文

女娲:阿里云分布式一致性协同服务架构详解

发布时间:2022-12-15 05:02:56 所属栏目:云计算 来源:未知
导读: 摘要:在11月24日阿里云·云栖社区组织的飞天系列培训上,来自阿里云女娲团队的存储专家朱云锋分享了《女娲:阿里云高性能、高可扩展的分布式一致性协同服务》。
他的演讲内容主要分为四个

摘要:在11月24日阿里云·云栖社区组织的飞天系列培训上,来自阿里云女娲团队的存储专家朱云锋分享了《女娲:阿里云高性能、高可扩展的分布式一致性协同服务》。

他的演讲内容主要分为四个方面:分布式协同服务背景、女娲服务架构以及技术演进、典型女娲服务应用场景分享、全球化架构下的女娲进化,下面是本次分享内容整理。

点击查看回顾视频

分布式协同服务背景 分布式协同服务

_3

在大规模云计算场景中,为保障数据分布式一致性,数量众多的计算节点往往依赖分布式协同服务来同步对共享资源的互斥访问,或者依赖分布式协同服务的消息通知功能来协调各自之间动作,使众多节点作为一个整体完成一项工作。

作为云计算分布式系统的核心,在设计分布式协同服务之初需要考虑互斥性、消息通知和扩展性三个方面的问题:

典型的应用服务

_4

分布式协同服务在云计算场景下的典型应用服务包括以下三类:

云计算与分布式协同系统

_5

分布式协同服务对于云计算系统十分关键与重要,大多数云计算厂商选择了自主研发的方式来实现自己的分布式一致性系统。当前Google、阿里云、Yahoo、CoreOS等公司主流的分布式协同系统采用的核心算法大多来自Leslie Lamport于1989年提出的Paxos分布式一致性算法。

女娲服务架构以及技术演进

_7

女娲是阿里云飞天系统核心基础模块之一,它在09年飞天建立之初即开始研发。目前女娲为飞天的业务系统提供了分布式锁、名字解析、Meta存储等一系列的分布式一致性服务。女娲产品在阿里云内部得到了广泛的应用,支撑着MaxCompute、ECS、TableStore、OSS等众多重量级云产品,同时对阿里集团菜鸟、蚂蚁等部分产品也提供服务化的分布式协同服务。

在飞天系统的架构上,飞天的分布式存储系统——盘古和分布式资源调度系统——伏羲直接支撑着ECS、OSS、TableStore等上层的云产品。而女娲作为提供分布式协同服务的基础模块,直接支持着盘古和伏羲模块。此外,因为对分布式系统中的名字解析这类服务的普遍需求,大量的上层云产品也在直接地使用女娲的分布式协同服务。

阿里设计飞天女娲的目标主要分为三个层次:

_9

为了达到女娲的分布式协同服务的设计目标,女娲的服务架构从下至上被分为四层:

名字解析服务

_10

女娲是基于消息通知来实现稳定、高效的名字解析服务。具体的服务流程如下:在这个服务中,女娲的客户端首先引入基于消息通知的缓存,这样极大地减少名字解析服务对后端无意义的、过多的访问压力。

从上层的业务方的角度来看,名字解析请求主要三种情况:

简而言之,如果业务的service master在女娲后端中没有变化,所有女娲的client至多访问后端一次。因为正确性和实时性是名字解析服务测评中优先等级级最高的任务云计算分布式系统,因此客户端如何准实时地维护Cache值是十分重要的。这里女娲端会订阅本地缓存中所有Cache Item对应的Key值在女娲后端的变化情况。当收到后端对应Key值改变这个事件通知时,client会及时更改本地缓存中相应的Cache Item的Status状态为Old,以确保下次业务通过女娲client的名字解析接口来访问该Key值的时候,client最终会通过Status状态判断,再到后端读取最新的内容。

_11

在女娲Client端引入了基于消息通知的分布式缓存来提供相对高效的名字解析服务适用于小规模、数百台的集群。但女娲上层业务的迅速增加,集群规模也在不断扩大,成千上万的女娲client对后端的数据库连接和订阅行为也会随之增加,这会导致单个订阅行为获得订阅反馈的延迟增加,从而影响到client获取最新订阅内容的时效性,最终对后端的连接压力造成了不小的挑战。

为此,女娲在Client与Quorum Server间引入无状态Proxy代理,支持集群内成千上万Client进程订阅行为共享,以及提供名字解析的二级缓存。其中Proxy针对每个Key,只会维持一份Cache Item,但它可以挂载多个感兴趣的Client。Client则定期与Proxy心跳,并带回Cache对应的改变事件,同时更新本地Cache状态。

分布式锁

_12

女娲的分布式锁是基于解耦会话连接来实现健壮和高可扩展:

什么是会话?它是一致性系统中Client和Server间建立的活跃连接,是实现分布式锁的关键概念。事实上,正是基于session会话,女娲的分布式一致性系统实现了分布锁的生命周期以及所有权的维护机制。Client是基于自己的Session会话来分享分布式锁,分享成功后Server端会将这个分布式锁当前的Owner记录为这个client session。一旦session会话在client端过期,这意味着client会意识到分布式锁已经丢失。同样一旦session会话在server端过期,server端也会认为这个分布式锁被释放掉了,主动释放这个分布式锁所占用的资源,此时其他的client就会有机会来争夺这个资源。

Client需要和Quorum server做互相的定期心跳,更新session会话在client和server两端的生命日期以维护锁的所有权。Session生命日期维护机制必须要确保client端比server端先意识到session过期事件,否则这会导致多个client同时认为自己占据了同一分布式锁的严重的后果。这里如何将会话与连接解耦管理主要包括两个模块:

_13

飞天女娲在Client与Server之间引入了无状态的Proxy层。它代理至后端Servers的连接,并聚合了客户端的访问请求,从根本上减轻了后端的连接压力。这样在client和Quorum后端实际上就多了一层连接管理,这里Proxy扮演着网络中类似交换机的角色,当client发出的心跳包因为故障而无法发送时,这时client会自动更换Proxy代理,这样就能更好地处理Master Failover场景,增强系统的健壮性。

水平扩展

_14

为了支持水平扩展性,女娲参照了传统的Partition分区并基于物理上多个Consensu Core划分成多个Partition分区,并引入逻辑Domain概念,通过Proxy代理层做逻辑Domain至物理Consensus Core的映射。

_15

引入区域化的System Quorum来管理全局的逻辑Domain至物理Consensus Core的映射关系

支持动态增加物理Consensus Core,扩容一致性服务能力。

飞天女娲的服务化演进

_16

飞天女娲的服务化演进:

典型女娲服务应用场景分享 大规模分布式场景下全局一致的高效全局信息更新机制

_18

大规模分布式跨区域部署的业务往往面临着全局信息更新的需求,并且需要保证在一定条件下高效地一致地更新,比如阿里巴巴,eBay,Amazon等国际性电商平台在全局性业务表中数据的更新。以电商的全局业务表为例,这里的问题包括以下三种:

针对更新效率问题,每个区域的会分别有个分布式缓存系统来缓存多个版本的全局信息数据。每个区域还会有女娲分布式协同服务系统,来存储全局数据中的Meta信息,这样就可以将原来跨平台的全局数据更新问题转化为全局数据中Meta信息的更新问题。针对全局信息更新的状态同步问题,依据女娲分布式协同服务中session在client和server两端协商及能够确保Server端比Client端后意识到Session过期的维护机制,是可以支持全局信息更新状态同步的。管控中心能够区域部署女娲分布式协同系统来获取当前全局状态更新的信息。 最后针对全局数据更新的一致性,区域数据不能出现新旧版本共存这类问题。这里女娲在新旧版本之间引入一个兼容的过渡版本,具体实现,也是留给读者们去思考。

为超大规模集群提供分布式协同服务。

_19

这里主要的难点是动态和高可扩展。这里的解决方案是基于分布式系统中解耦连接管理和基于消息通知的分布式缓存的机制,通过在中间引入一个Proxy代理层来代理客户端与后端的连接,聚合一些访问请求,更关键的是基于Proxy层,引入了对后端资源分配的概念,从而在软件的架构上支持后端物理层基于用户资源的水平扩展。

支持负载均衡的在线服务

_20

支持负载均衡的在线服务,平滑实现在线扩容、缩容的轻量级在线服务管理组件。 现在的很多云产品服务均会有多个应用的server在提供服务,这里对server进行负载均和动态的扩容缩容是这类云产品服务的刚性需求。基于女娲分布式协同服务可以很多打包解决这些问题。每个应用服务的server均会将自己的服务地址注册到该业务服务在女娲系统下的制定目录,然后应用服务server会与女娲保持定期的在线心跳,以确保当前server是正常的,否则女娲会主动剔除其服务地址。

全球化架构下的女娲进化

随着全球化的趋势逐渐增强,这对分布式系统跨地域连接也提出了更高的要求。为此阿里正不断地完善和发展飞天操作系统,以实现飞天系统的全球化部署,与此同时作为飞天系统中提供一致性协同服务的女娲模块也在不断地进化。

飞天系统的全球化部署

_22

当前阿里云飞天操作系统已经实现了全球化部署,在欧洲、美国、中东、澳洲等多地都提供了云服务,并且整个全球化进程还在不断提速中。另外一个背景是飞天女娲分布式协同服务支撑的上层各类应用和业务也存在跨区域的部署和运维等前台需求。

跨区域业务部署对一致性场景的述求

_23

跨区域业务部署对一致性场景的述求主要分为以下三种场景:

跨区域一致性协同服务的思考点

_24

跨区域部署一致性协同服务并非是一个简单的事情,它在技术上存在很多挑战,比如:

总结:

女娲(Nuwa)是阿里云飞天系统底层核心模块之一,从2009年飞天建立起开始自主开发。女娲对基于飞天的系统提供一致性、分布式锁、消息通知等服务,在阿里云内部支持着MaxCompute、ECS、TableStore、OSS等重量级云产品,并且与有类似功能的开源软件相比,女娲在性能,可扩展性和可运维性上有明显优势。在全球化的架构下,阿里将不断完善和发展女娲,使其提供更优质的一致性服务。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!