精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何在幾分鐘內搭建一個可擴展并且高可用的GraphQL API

譯文
開發 前端
這篇文章將為你介紹如何使用一個基礎數據庫在幾分鐘內迅速搭建一個跨越同一個公共云片區的多個可用區域的GraphQL層。

譯者 | 譚劍

審校 | 孫淑娟 梁策

對于云原生的應用來說,一個現代化的GraphQL API層需要具備兩個特征:水平可擴展性以及高可用性。

比如說,給一臺運行API層的現有機器設備增加更多的CPU、內存和其他資源,這是垂直擴展性。而水平擴展性會為你的API基礎設施添加更多的機器設備。

垂直擴展性主要是為了實現某種特定的擴展,而一個具備水平擴展性的API層可以發揮超越單臺機器的容積能力。

當談到高可用性的時候,GraphQL層需要無差錯地持續運轉(甚至在一些超出我們可控范圍的突發情況中)。這是判斷一個系統是否具備99.999%高可用特征的最佳考核指標。

這篇文章將為你介紹:如何使用一個基礎數據庫在幾分鐘內迅速搭建一個跨越同一個公共云片區的多個可用區域的GraphQL層。

最終的解決方案將會橫跨多個可用區域,并且可以經受區域級別的故障,以及水平地擴展。

下面我們拿AWS、Hasura云,以及Yugabyte云作為參考平臺來做案例演示。

跨多個可用區域來部署YugabyteDB

就從數據庫層開始吧,我們選擇??YugabyteDB??——一個開源的分布式SQL數據庫。

對于可擴展性和可快速恢復的API來說,它是一個理想的支撐服務。

YugabyteDB同時也是符合PostgreSQL語法習慣的一個數據庫。這意味著我們不需要學習另外一門SQL方言或者從零開始地重寫現有的應用。

那么需要花費多少時間來部署一個有彈性、跨多區域的YugabyteDB集群呢?

這要看情況而定,但如果你像我一樣懶,或者更傾向于直接使用云原生服務的話,那么Yugabyte云將會是完成這項任務的最簡單的方式:

1.對于初學者來說,創建或者注冊你的Yugabyte云賬號。

2.然后,準備一個多節點的跨越若干個可用區域的YugabyteDB集群:

a. 選用一個自定義的集群名字,比如 multi-zone-cluster,把集群服務安放在離你最近的AWS片區(對我來說,N.Virginia - us-east-1是最近的),然后確保把Fault Tolerance這項參數設置為Availability Zone Level。

b. 點擊Download credentials下載證書。然后點擊"Create Cluster"(創建集群)。

那我們怎么利用YugabyteDB來實現高可用呢?

這個集群有三個節點,部署在三個可用區域的其中一個里面。備份因子同樣已設置為3。

這意味著每一個節點(而實際上是在每個區域)都會維護著一份數據記錄的拷貝。在我的例子中,分別位于us-east-1b、us-east-1c、以及us-east-1a等可用區域里都分別有一個節點:

節點

YugabyteDB是基于Raft一致性協議的。因此,按當前已有三個節點的配置,我們可以釋放為一個節點(或者說,一個可用區間——只要在每個片區都有一個節點),這個節點仍然是可運行的。

為什么YugabyteDB不選擇只用一個節點來處理請求服務呢?

依據CAP定理(又稱作布魯爾定理),YugabyteDB??是一個遵循一致性和分區容錯性(CP)的數據庫??。

下面的公式定義了容錯變量K和備份因子RF之前的依賴關系:

RF=(2k + 1)

在我的例子中,K=1(意思是,集群可以釋放為1個節點),而因此,RF結果為3(3份數據拷貝)。

問題來了,如果數據庫需要處理100倍的查詢次數或者存儲更多的數據,那我們怎么樣利用YugabyteDB來完成水平擴展呢?只需要在集群的Setting界面添加更多的節點到基礎設施里。

打造一個可擴展以及富有彈性的 Hasura GraphQL層

Hasura 是一個高級的GraphQL服務器,它基于符合PostgreSQL方言的數據庫(比如YugabyteDB),提供了快速實時的GraphQL API。

Hasura有一個完全可管理的云版本。創建一個Hasura項目,具有水平擴展性和高可用性,開箱即用:

  • 創建或登錄你的Hasura Cloud賬號;
  • 創建一個Standard Tier項目:

  1. 選擇一個AWS片區,類似部署YugabyteDB那樣——在我的例子中,是US East (N. Virginia)。
  2. 點擊Create Project按鈕,繼續部署操作。

就像我們所看到的,Hasura沒有任何與擴展性或區域級別可用性相關的設置。那么,在可能發生區域故障或者哪天有必要做水平擴展的時候,我們如何確定API層能夠繼續保持可運行呢?

實際上,只要我們選擇了Standard Tier,這兩個特性就都會有的。這就是Hasura在文檔所說的:

把Hasura鏈接到YugabyteDB

到目前為止,我們已經部署了一個Hasura GraphQL層和YugabyteDB集群,可以支撐水平擴展以及區域級別的突發故障了。剩下要做的,就是把這兩個組件連接起來,為我們的應用提供一個最終解決方案。

把Hasura添加到YugabyteDB白名單里

YugabyteDB集群實例要求我們設定所訪問數據庫的應用IP地址。對我們的Hasura實例來說這并不難。

把Hasura Cloud IP添加到Yugabyte Cloud終端的Allow IP List里:

  • 從你的Hasura項目界面里復制Hasura Cloud IP。
  • 轉到YugabyteDB Cloud,把IP添加到IP Allow List里。

建立連接

在授權Hasura訪問YugabyteDB實例后,我們需要在兩個服務之間建立連接。這需要兩個步驟:

1. 打開Yugabyte Cloud,然后復制一個鏈接URL:

  • 點擊Connect按鈕,選擇Connect to your Application選項。
  • 勾選Optimize。
  • 復制鏈接YSQL(Yugabyte SQL)的唯一URL。
  • 確保使用之前從YugabyteDB集群部署那個步驟下載的證書里面的信息,替換掉數據庫用戶和密碼。

3. 轉到Hasura云,與YugabyteDB建立一個連接:

  • 點擊Launch Console按鈕,跳轉到Data & Schema 管理界面。
  • 填寫YugabyteDB鏈接參數,建立一個鏈接。
  • 點擊Connect Database按鈕,建立鏈接。

我們剛剛已經完成一個Graphql API層的搭建,它可以支撐區域級別的故障以及水平擴展能力。現在,我們用一些樣例數據和請求來做一個健全性測試。

創建一個樣例數據庫

按照以下的步驟,在YugabyteDB里創建用戶表和消息表:

1. 在YugabyteDB Cloud終端里,點擊Launch the Cloud Shell。

2. 創建用戶表Users和消息表Messages:

3. SQL:

CREATE SEQUENCE users_pk_seq CACHE 100;
CREATE SEQUENCE messages_pk_seq CACHE 100;

CREATE TABLE Users (
id int NOT NULL DEFAULT nextval('users_pk_seq'),
name text,
age int,
city text,
PRIMARY KEY(id));

CREATE TABLE Messages (
id int NOT NULL DEFAULT nextval('messages_pk_seq'),
sender_id int REFERENCES Users(id),
recipient_id int REFERENCES Users(id),
payload text,
PRIMARY KEY (id)
);


4.最后,初始化用戶表,創建兩條記錄:

SQL:

INSERT INTO USERS (name, age, city) VALUES
('John', 35, 'Austin'),
('Mark', 36, 'Seattle');


用GraphQL來查詢數據

往YugabyteDB里載入樣例數據庫后,我們可以體驗到Hasura提供的GraphQL API層帶來的便利。

把數據表暴露到GraphQL層

即使Hasura自動檢測數據庫端的結構更改,我們仍然需要明確指定哪些表可以通過GraphQL API查詢:

1. 在Hasura Console里打開Data & Schema Management。

2. 點擊Track All按鈕,通過YugabyteDB API展示出兩個數據表:

3. 最后,點擊Track按鈕,建立從message表到users表的外鍵關聯關系:

查詢數據

下一步,我們來用GraphQL讀取用戶表里面的記錄:

1. 打開Hasura Console界面的Api Explorer標簽:

2. 查詢全部用戶:

query {
users {
id
name
age
city
}
}


3.最后,確認輸出如下:

{
  "data": {
    "users": [
      {
        "id": 1,
        "name": "John",
        "age": 35,
        "city": "Austin"
      },
      {
        "id": 2,
        "name": "Mark",
        "age": 36,
        "city": "Seattle"
      }
    ]
  }
}


更新數據

最后,來確認一下我們的GraphQL API能夠順利處理寫入問題。

1. 使用以下的GraphQL變種語法,添加一條消息記錄到數據庫里:

mutation {
insert_messages_one(object: {recipient_id: 2, sender_id: 1, payload: "Hi, Mark! How are you doing?"}) {
id
}
}


2.從YugabyteDB反向讀取消息:

query {
messages {
payload
userBySenderId {
name
city
}
user {
name
city
}
}
}


3.確認輸出如下:

{
  "data": {
    "messages": [
      {
        "payload": "Hi, Mark! How are you doing?",
        "userBySenderId": {
          "name": "John",
          "city": "Austin"
        },
        "user": {
          "name": "Mark",
          "city": "Seattle"
        }
      }
    ]
  }
}


結論

正如我們在這篇文章里所看到的,正確地融合現代的云原生服務,可以搭建一個水平可擴展和一個高可用的GraphQL API層。

在幾分鐘的時間里,我們已經得到一個可以處理請求增加的API層,并把它的容積能力從10GB擴展到100GB,甚至更大的容量。此外,最重要的是,它能夠持續服務應用的請求,哪怕突發區域級別故障也可以做到。

最后,如果你的GraphQL API層需要跨多個云片區工作,并能實現片區級別的突發狀況容錯,那么你仍然可以使用Hasura和YugabyteDB。目前,這項能力可在自管理安裝選項中獲取(可參考 ??YugabyteDB的多區域部署??)。

相信在不久的將來,它也會往完全管理版本的技術方向發展。

譯者介紹

譚劍,畢業于廣東財經大學,現自主創業。喜歡編程、外語、閱讀。

原文標題:??How To Set Up a Scalable and Highly-Available GraphQL API in Minutes??,作者:Denis Magda

責任編輯:華軒 來源: 51CTO
相關推薦

2020-09-11 09:18:07

PythonPython包開發

2022-04-06 09:28:04

漏洞SQL注入

2010-11-30 10:12:08

2017-08-03 17:30:26

戴爾IoT設備

2010-01-06 13:39:51

擴展Jquery的Js

2016-09-30 15:13:01

Python代碼

2013-07-02 09:58:38

ClojureClojure教程

2021-12-02 11:54:10

云計算云錯誤配置網絡安全

2023-05-09 15:04:37

人工智能工具

2022-05-20 07:36:02

LiveTerm工具

2024-11-20 13:18:21

2010-01-06 15:35:06

JSON對象

2009-12-29 09:01:46

ADSL斷線

2023-08-15 09:00:00

人工智能破解密碼

2024-04-19 09:37:49

Ollama大語言模型開源

2009-11-25 17:22:12

路由器安裝

2010-03-01 18:13:22

Python程序

2024-12-03 15:38:14

2010-01-21 09:46:24

C++程序

2010-02-23 14:19:30

Python目錄操作
點贊
收藏

51CTO技術棧公眾號

日韩欧美中文字幕视频| 中文字幕无码毛片免费看| 美女欧美视频在线观看免费 | 亚洲国产成人高清精品| 国产精品一区二区三区免费观看| 国产精品久久久久久久久久久久久久久久久 | 国产综合久久久久久鬼色| 欧美精品亚州精品| 中文字幕免费高清视频| 色婷婷成人网| 亚洲va欧美va天堂v国产综合| 色一情一乱一伦一区二区三欧美| av中文字幕播放| 久久先锋影音| 欧美富婆性猛交| 欧美午夜激情影院| 黄色网一区二区| 欧美日韩免费在线视频| 亚洲人精品午夜射精日韩 | 欧美极品另类videosde| 97伦理在线四区| 波多野结衣午夜| 亚洲激情午夜| 美女性感视频久久久| 国产美女免费无遮挡| 1313精品午夜理伦电影| 91麻豆精品91久久久久同性| 国产福利视频在线播放| 色老头在线观看| 综合婷婷亚洲小说| 日韩.欧美.亚洲| 亚洲色图21p| 国产91丝袜在线18| 91美女片黄在线观| 中文字幕资源网| 日韩国产欧美视频| 欧美一区二区视频97| 亚洲精品在线观看av| 91精品一区二区三区综合在线爱| 在线播放国产精品| 亚洲永久精品ww.7491进入| 成人动态视频| 精品国产三级a在线观看| 五月天开心婷婷| 另类一区二区三区| 欧美私模裸体表演在线观看| 成人中文字幕av| 国产精品专区免费| 欧美性猛交xxxx乱大交3| 欧美视频在线观看视频| 亚洲国产精品精华素| 一个色在线综合| 国产精品videossex国产高清| 国产在线观看免费麻豆| 综合激情成人伊人| 色中文字幕在线观看| 麻豆av免费在线观看| 亚洲婷婷综合色高清在线| 最新中文字幕久久| 国产视频中文字幕在线观看| 亚洲男同性视频| 91国在线高清视频| 少妇视频在线| 无码av中文一区二区三区桃花岛| av无码久久久久久不卡网站| а√在线天堂官网| 色偷偷成人一区二区三区91| 成人在线看视频| 麻豆久久久久| 日韩欧美在线综合网| 污网站免费观看| 羞羞答答一区二区| 尤物yw午夜国产精品视频明星| 你懂得视频在线观看| 亚洲成人精品| 91国产精品电影| 欧美成人一区二区三区四区| 青青青爽久久午夜综合久久午夜| 成人有码在线视频| 懂色av蜜臀av粉嫩av分享吧| 91在线精品秘密一区二区| 日韩国产在线一区| 精精国产xxxx视频在线| 亚洲国产欧美在线| 热久久精品国产| 国产精品一区二区美女视频免费看 | 中文字幕成人网| 日韩亚洲欧美一区二区| 日韩欧美一中文字暮专区| 在线观看区一区二| 四虎国产精品永久免费观看视频| 欧美黄色录像| 精品国产欧美一区二区三区成人| 久久99久久98精品免观看软件| 性高湖久久久久久久久| 成人天堂噜噜噜| 天堂av电影在线观看| 国产精品视频九色porn| 亚洲国产精品无码观看久久| 成人黄色免费观看| 精品成a人在线观看| 久久久精品成人| 在线国产日韩| 国产日韩欧美电影在线观看| 四虎永久在线精品免费网址| 国产欧美精品一区二区色综合 | 这里有精品可以观看| 在线不卡一区二区| 国产黄色三级网站| 欧美暴力喷水在线| 国产精品久久av| 手机看片国产1024| 亚洲欧美激情视频在线观看一区二区三区 | 美女又爽又黄视频毛茸茸| 久久伦理在线| 欧美在线免费观看| 亚洲精品中文字幕成人片| 国产婷婷色一区二区三区| 波多野结衣av一区二区全免费观看| 成人黄色免费网站| 亚洲欧美三级伦理| 一级免费在线观看| 国产精品一区二区x88av| 清纯唯美一区二区三区| 免费在线小视频| 精品成人佐山爱一区二区| 成年人网站在线观看视频| 玖玖精品视频| 久久精品中文字幕一区二区三区| 婷婷丁香在线| 日韩午夜电影在线观看| 欧美一区二区三区观看| 奇米色一区二区三区四区| 蜜桃精品久久久久久久免费影院| 精品精品导航| 日韩欧美一级特黄在线播放| 亚洲综合第一区| 日本欧美在线看| 鲁丝片一区二区三区| 波多野结衣在线高清| 欧美大片在线观看一区二区| 91日韩中文字幕| 国产麻豆一精品一av一免费| 亚洲综合激情五月| www.久久久.com| 久久久精品久久久久| 国产精品嫩草影院精东| 中文字幕一区二区三中文字幕| jizzzz日本| 天天精品视频| 91久久久亚洲精品| a视频在线免费看| 日韩亚洲欧美高清| 免费三片在线播放| 成人免费的视频| 国产一区二区视频播放| 日韩中文av| 国产成人免费av| 99riav在线| 91麻豆精品国产91久久久使用方法 | 精品欧美日韩在线| 麻豆理论在线观看| 精品亚洲一区二区三区| 亚洲精品国产无码| 国产精品国产三级国产aⅴ原创| 亚洲精品视频三区| 欧美色123| 精品久久一区二区三区蜜桃| 伊人久久视频| 最好看的2019年中文视频| 国产wwwwwww| 婷婷成人综合网| 日本少妇xxxxx| 韩国三级在线一区| 国产真实老熟女无套内射| 牛牛影视一区二区三区免费看| 国产91在线视频| 看女生喷水的网站在线观看| 精品久久久久香蕉网| 亚洲精品男人的天堂| 国产精品欧美一区喷水| 台湾佬美性中文| 噜噜噜久久亚洲精品国产品小说| 亚洲一卡二卡三卡四卡无卡网站在线看| 91视频亚洲| 欧美亚洲在线观看| 日本在线观看| 亚洲国产精品热久久| 瑟瑟视频在线免费观看| 亚洲一区二区三区在线| 精品人伦一区二区三电影| 国产精品一品二品| av动漫免费看| 国产一区清纯| 亚洲视频电影| 欧美顶级毛片在线播放| 成人黄色激情网| 亚洲涩涩在线| 欧美日韩成人精品| 粉嫩av在线播放| 精品精品国产高清a毛片牛牛| 欧美男人天堂网| 亚洲国产欧美在线人成| 小向美奈子av| 久久久亚洲精品石原莉奈| 欧美一级免费在线| 日韩电影在线观看一区| 日韩亚洲欧美视频| 91高清一区| 日韩影院一区| 精品福利网址导航| 99久久无色码| 天天综合在线观看| 日韩免费观看高清| 9999在线视频| 欧美巨大黑人极品精男| 3d成人动漫在线| 亚洲欧美日韩精品久久亚洲区 | av一区二区三区在线| 亚洲一区二区在线视频观看| 久久成人精品| 国产91xxx| 雨宫琴音一区二区在线| 中国一级大黄大黄大色毛片| 日韩激情图片| 日韩精品资源| 美女毛片一区二区三区四区最新中文字幕亚洲| 1卡2卡3卡精品视频| 国产伊人久久| 国产精品久久久久久久久| 亚洲精品国产精品国产| 国产69精品99久久久久久宅男| 在线观看h网| 久久影视电视剧免费网站清宫辞电视| av在线中文| 在线观看不卡av| 国产精品免费播放| 一本色道久久88综合亚洲精品ⅰ| 日本ー区在线视频| 日韩黄色高清视频| 头脑特工队2免费完整版在线观看| 精品盗摄一区二区三区| 色哟哟国产精品色哟哟| 亚洲成人a**站| 欧美熟妇交换久久久久久分类| 日韩欧美国产麻豆| 性一交一乱一色一视频麻豆| 日韩精品中文字幕一区| 亚洲成人一二三区| 欧美xfplay| 色呦呦免费观看| 精品一区二区电影| 九色视频在线播放| 亚洲欧美一区二区三区情侣bbw| 九色在线视频蝌蚪| 在线观看日韩av| 免费在线观看黄色网| 日韩少妇与小伙激情| 国产在线观看91| 国内精品久久久久影院优 | 午夜视频成人| 欧美成人精品激情在线观看 | 国产精品第8页| 日韩av黄色| 成人av免费看| 网曝91综合精品门事件在线| 日韩精品电影网站| 婷婷亚洲图片| 成人性免费视频| 久久午夜电影| 91日韩精品视频| 高清在线成人网| 日韩av在线看免费观看| 国产精品网站在线| 麻豆疯狂做受xxxx高潮视频| 精品日韩中文字幕| 欧美一级做a爰片免费视频| 91.麻豆视频| 日本毛片在线观看| 国产亚洲美女久久| 超碰免费在线播放| 91高清视频免费| 自拍偷拍亚洲| 美女主播视频一区| 91中文字幕精品永久在线| 日韩美女爱爱视频| 视频一区二区不卡| 制服下的诱惑暮生| 久久久一区二区三区捆绑**| 亚洲人与黑人屁股眼交| 欧美日韩激情小视频| 91福利免费视频| 日韩国产高清污视频在线观看| 五月天婷婷在线视频| 久久久久久网址| 欧美系列精品| 麻豆精品传媒视频| 中文字幕一区二区三区久久网站| 啊啊啊一区二区| 国产精品一卡二卡| 少妇一级黄色片| 精品久久久免费| a网站在线观看| 伊人久久综合97精品| 高h视频在线播放| 国产一区二区色| 欧美人与物videos另类xxxxx| 成年丰满熟妇午夜免费视频| 青草国产精品久久久久久| www.88av| 亚洲一级二级三级| 国产精品人妻一区二区三区| 亚洲人成电影网站色www| 后进极品白嫩翘臀在线播放| 国产裸体写真av一区二区| 欧美美女啪啪| 欧美中日韩在线| 国产在线不卡视频| eeuss中文字幕| 在线视频一区二区三区| 五月婷婷久久久| 色综合久久久久久中文网| 粉嫩一区二区三区在线观看| 日韩精品av一区二区三区| 久久国产主播| 三级电影在线看| 天天色天天操综合| 欧美一区,二区| 欧美精品成人91久久久久久久| 伊人久久大香| 五月天色婷婷综合| 久久精品国产在热久久| 欧美波霸videosex极品| 色婷婷综合激情| 欧美91精品久久久久国产性生爱| 8x拔播拔播x8国产精品| 精品素人av| www.99热这里只有精品| 成人sese在线| 99精品视频99| 日韩激情av在线播放| 狠狠躁少妇一区二区三区| 国产精品久久久久久免费观看| 欧美激情四色| 中文字幕无人区二| 夜夜精品视频一区二区| 亚洲精品成人电影| 欧美国产精品va在线观看| jizz18欧美18| 日本a在线免费观看| 99精品欧美一区| 亚洲午夜18毛片在线看| 亚洲情综合五月天| 91p九色成人| 中文字幕免费在线不卡| 国产一区二区在线免费观看| 农村黄色一级片| 亚洲第一综合天堂另类专| 极品美鲍一区| 欧美精品一区二区三区在线看午夜| 久久人人97超碰国产公开结果| a级在线免费观看| 欧美日韩一级二级| 中文在线免费| 国产一区免费观看| 久久不射中文字幕| 日韩精品久久久久久久的张开腿让| 欧美日本国产视频| 五月花成人网| 欧美日韩成人一区二区三区| 青青草国产精品97视觉盛宴| 亚洲 欧美 变态 另类 综合| 精品少妇一区二区三区视频免付费| 波多野结衣在线观看| 日韩久久久久久久| 国产一区二区视频在线播放| 国产大片aaa| 在线亚洲男人天堂| 麻豆精品在线| 久草青青在线观看| 日韩一区欧美一区| 天堂av电影在线观看| 国产综合福利在线| a91a精品视频在线观看| 色屁屁草草影院ccyy.com| 欧美一级日韩一级| 热三久草你在线| www.午夜色| 91麻豆swag| 国产毛片毛片毛片毛片毛片| 69影院欧美专区视频| 国产精品99一区二区三区| yy6080午夜| 欧美欧美午夜aⅴ在线观看| av电影在线免费| www.午夜色| 国产欧美精品国产国产专区| 高清国产mv在线观看| 国产精品永久在线| 亚洲一区日韩在线|