aoa电子体育竞技:怎样正在几分钟内搭建一个可增添而且高可用的GraphQL API

   刊发时间:2022-04-13 22:39:18   来源:aoa官方体育 作者:aoa官方体育平台

  对付云原生的操纵来说,一个摩登化的GraphQL API层须要具备两个特点:秤谌可扩展性以及高可用性。

  比方说,给一台运转API层的现有呆板摆设推广更多的CPU、内存和其他资源,这是笔直扩展性。而秤谌扩展性会为你的API根本方法增添更多的呆板摆设。

  笔直扩展性首假若为了完毕某种特定的扩展,而一个具备秤谌扩展性的API层能够阐明超越单台呆板的容积本事。

  当道到高可用性的时间,GraphQL层须要无过失地陆续运行(乃至正在少少跨越咱们可控鸿沟的突发环境中)。这是推断一个别系是否具备99.999%高可用特点的最佳调查目标。

  这篇著作将为你先容:怎样应用一个根本数据库正在几分钟内急忙搭筑一个横跨统一个大多云片区的多个可用区域的GraphQL层。

  最终的治理计划将会横跨多个可用区域,而且能够经受区域级其余阻碍,以及秤谌地扩展。

  下面咱们拿AWS、Hasura云,以及Yugabyte云举动参考平台来做案例演示。

  就从数据库层开端吧,咱们挑选YugabyteDB——一个开源的漫衍式SQL数据库。

  YugabyteDB同时也是适当PostgreSQL语法习性的一个数据库。这意味着咱们不须要练习别的一门SQL方言或者从零开端地重写现有的操纵。

  那么须要花费多少时辰来安放一个有弹性、跨多区域的YugabyteDB集群呢?

  这要看环境而定,但倘若你像我相似懒,或者更偏向于直策应用云原生任职的话,那么Yugabyte云将会是竣事这项做事的最粗略的办法:

  2.然后,打定一个多节点的横跨若干个可用区域的YugabyteDB集群:

  这个集群有三个节点,安放正在三个可用区域的此中一个内部。备份因子同样已筑设为3。

  这意味着每一个节点(而实质上是正在每个区域)都市爱护着一份数据记载的拷贝。正在我的例子中,差别位于us-east-1b、us-east-1c、以及us-east-1a等可用区域里都差别有一个节点:

  YugabyteDB是基于Raft相同性同意的。因而,按此刻已有三个节点的筑设,咱们能够开释为一个节点(或者说,一个可用区间——只消正在每个片区都有一个节点),这个节点仍旧是可运转的。

  依照CAP定理(又称作布鲁尔定理),YugabyteDB是一个听命相同性和分区容错性(CP)的数据库。

  正在我的例子中,K=1(兴趣是,集群能够开释为1个节点),而因而,RF结果为3(3份数据拷贝)。

  题目来了,倘若数据库须要管理100倍的查问次数或者存储更多的数据,那咱们何如样愚弄YugabyteDB来竣事秤谌扩展呢?只须要正在集群的Setting界面增添更多的节点到根本方法里。

  Hasura有一个完整可打点的云版本。创筑一个Hasura项目,拥有秤谌扩展性和高可用性,开箱即用:

  就像咱们所看到的,Hasura没有任何与扩展性或区域级别可用性合连的筑设。那么,正在或许发作区域阻碍或者哪天有须要做秤谌扩展的时间,咱们怎样确定API层可能一直维持可运转呢?

  实质上,只消咱们挑选了Standard Tier,这两个个性就都市有的。这便是Hasura正在文档所说的:

  秤谌扩展:Hasura Cloud可能自愿地扩展你的操纵而不必去商讨实例的数目、内核、内存或者阈值。你能够维持推广并发用户的数目以及API的挪用次数,同时,Hasura Cloud将会自愿帮你完毕优化。

  **高可用:**Hasura的多实例能够运转于graphql引擎。正在Hasura Cloud里,自愿化的扩展管理以及维持运转所一定的根本方法,都市被计划停当,不须要人为干涉。

  到目前为止,咱们依然安放了一个Hasura GraphQL层和YugabyteDB集群,能够支持秤谌扩展以及区域级其余突发阻碍了。剩下要做的,便是把这两个组件连绵起来,为咱们的操纵供应一个最终治理计划。

  YugabyteDB集群实例恳求咱们设定所拜候数据库的操纵IP所在。对咱们的Hasura实例来说这并不难。

  正在授权Hasura拜候YugabyteDB实例后,咱们须要正在两个任职之间筑造连绵。这须要两个步伐:

  咱们刚才依然竣事一个Graphql API层的搭筑,它能够支持区域级其余阻碍以及秤谌扩展本事。现正在,咱们用少少样例数据和恳求来做一个健康性测试。

  往YugabyteDB里载入样例数据库。

  印度的外包产业

 

版权所有: aoa电子体育竞技|aoa官方体育平台 

京ICP备05050114号      400-160-1670