开发者社区> 问答> 正文

Shared - Data 的持续高可用是什么?

Shared - Data 的持续高可用是什么?

展开
收起
芯在这 2021-12-12 11:29:09 438 0
1 条回答
写回答
取消 提交回答
  • 这里可以简单分解为 2 个方面。第一个是失败容错,第二个是在线升级。

    首先,作为一个 SaaS 化的应用,它的容错性是需要体现在整体架构上。这里我们同样分层来回顾一下。

    最底层的存储层利用了云厂商的对象存储能力,他本身是一个跨中心复制以及接近无限扩容的一个机制,所以用户基本无需关心。

    再往上是多元的计算集群。每个计算集群是在同一个数据中心内,来保证它网络传输的性能。这里就提到一个问题,有可能某一个计算集群会有节点失败的问题。假如在一次查询中有一个节点失败,这些计算节点会将这个状态返回上面的服务层。服务层在接受这个失败后,会将这个计算再次传递到可用的节点中进行二次查询。所以 Shared-Data 存储和计算分离的这种架构上节点近乎是无状态的计算。这种架构的一个节点失败就不是一个非常大的问题。

    再往上服务层对于元数据的存储也是利用了对象存储的这个能力。所以这个服务层基本上可以看做是无状态的服务。

    最上层是一个负载均衡器,可以进行服务的冗余和负载的均摊。

    第二点在线升级这一块主要利用两个设计,其实这也并不是很新颖的做法。一个是在计算层和服务层的多方面的映射,然后灰度的切换。这里可以看到在计算层是分多版本的,并且这些版本之间会共享本地的 Cache。服务层的元数据管理也是在多方面共享。这其实也是架构内的子 Shared-Data,对于多版本之间的数据共享能做到再升级和平滑灰度的能力。

    2021-12-12 11:29:26
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Check Point云安全视角 领先一步 ONE STEP AHEAD 立即下载
在线分析进入Fast Data时代的关键技术解读 立即下载
Facebook Online Schema Change原理和大规模表结构变更最佳实践 立即下载