久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

瀏覽:206日期:2022-06-14 17:21:56

京東彈性數據庫不是一個單一的產品,而是京東在對數據庫的使用、運維和開發過程中遇到的一系列問題的解決方案,和運維經驗的總結升華進而形成的一套產品系列,主要包括三大功能模塊:

核心功能模塊:JED,提供數據查詢和寫入的自動路由、自動彈性伸縮、自動FailOver、自動負載調度和數據庫服務智能自治的功能。 實時數據發布與訂閱模塊: BinLake,完全自助、無狀態、自動負載、完全自治、可橫向擴展的集群化Binlog采集和訂閱服務。 自動化運維模塊:DBS,實現了京東線上所有數據庫服務申請、DDL/DML上線、數據抽取等的流程化和自動化。

分享大綱:

1、發展歷程

2、功能特性

3、整體架構

4、實現細節

5、使用情況

一、發展歷程

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

在我2011年加入京東之初,京東的數據庫正是處于諸侯混戰的階段,各種數據庫都有,包括:MySQL、PostGre、Oracle、SQL Sever,在2011年之后,開始去IOE,到了2014年,京東基本上完成了去IOE,所有的業務系統都遷移到了MySQL上。

在大規模使用MySQL的過程中,我們發現,隨著業務數據量的增長,很多業務開始了漫長的分庫、分表之旅,起初各個業務系統在自己的業務代碼中維護分庫分表的路由規則,而且各個業務系統的路由規則和整體設計都不一樣,后來由于人員更迭以至于業務代碼無法維護,不同業務使用的數據庫分庫分表模式不盡相同,導致數據庫的維護工作也難如登天。這時我們開始重新思考應該提供什么樣的數據庫服務,得出了以下幾點:

統一分庫分表標準 路由針對業務透明 數據庫服務伸縮無感知 統一數據服務 業務研發自助申請服務 數據庫運維工作自動化

為了實現上述功能特點,我們分為兩步走:第一步是優先解決業務和運維窘境,從而爭取足夠的時間和技術buffer進一步完善產品,第二步是最終完美形態的產品研發。

因此,我們首先在2015年開發了JProxy,優先解決緊急的業務和運維難題:分庫分表規則統一化和路由透明化。在拿到充分的時間buffer后,我們從2016年開始以匠人的精神精雕細琢京東彈性數據庫。

二、功能特性

如前面所說:京東彈性數據庫是一個產品系列,主要是解決數據庫的運維、使用和研發過程中的問題,具備動態伸縮、高可用、查詢透明路由、集群化日志服務和自動化運維等功能。

本章將就京東彈性數據庫三個核心模塊的功能進行詳細說明。

1、JED(JD Elastic DataBase)

JED是JProxy功能的父集,它除了具備透明路由、統一分庫分表標準之外,還提供了五大功能:

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

(1)在線動態擴容

起初某個業務可能申請了4個分庫,后面隨著業務的發展,數據量越來越大,可能需要擴容到 8個分庫,一般的數據庫中間件在擴容時,需要與業務研發部門協商一個業務低谷期停業務,然后進行擴容,擴容完畢后重新啟動業務。為了解決這個問題,JED提供了在線動態擴容功能,擴容只會對業務造成秒級影響,且無需人工介入。我們現在可以觸發自動擴容,設置的策略是當磁盤的使用率達到80%,就自動進行擴容。

(2)自動Failover

Master一旦出現宕機,哨兵檢測系統就會第一時間檢測到,會自動觸發注冊在哨兵檢測系統中的Hook程序,Hook程序就會選擇一個最新的Slave替換Master,然后更新ETCD中的元數據信息,業務方的下一次請求就會發送新的Master上。

(3)兼容MySQL協議

JED是完全兼容MySQL協議的,即通過MySQL的Client端或者標準的JDBC Driver都可以連接到JED的Gate層,然后進行查詢和計算。

(4)多源數據遷移

我們基于ghost進行改造,開發了京東的數據傳輸和接入工具: JTransfer,實現了業務數據的動態遷移。如果以前你的業務是運行在MySQL上的,現在要遷到JED上,你不需要停止任何業務,直接啟動JTransfer的數據遷移服務,就可以在后臺自動完成數據的同步和遷移。遷移完畢后,JTransfer會自行比對JED上的數據與原來數據的一致性和lag計算,當數據完全一致,且lag小于5秒時,就會郵件通知業務方進行復驗,復驗沒有問題,業務方直接將數據庫連接指向到JED就可以正常提供服務了。

(5) 數據庫審計

JED具有數據庫審計的功能,該功能實現在Gate層,在Gate層我們會得到應用發送給JED的所有SQL,然后將SQL語句或者SQL模板發送給MQ。由于是在Gate層實現的,而Gate層與MySQL服務不在一個容器上,因此對MySQL服務不會產生任何的負面影響。

2、BinLake

BinLake只做一樣工作:集群化Binlog的采集和訂閱服務。BinLake之前,我們使用Canal進行binlog采集,但我們發現存在資源浪費等問題:若一個業務需要采集MySQL Binlog,并且還需要HA保證的話,我們至少需要兩臺服務器。那多個業務怎么辦?于是我們開發了BinLake,其功能特性如下:

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

(1) 無狀態集群化BinLog采集

BinLake是一個集群化的BinLog采集和訂閱服務,并且與常規意義上的集群不一樣,我們的集群是沒有master節點的,而且集群中的所有工作節點都是完全平等的,這也就意味著,只要集群中的節點沒有全部宕機,BinLake集群可以一直提供服務。

(2) 高可用與自動故障轉移

針對于某個Mya實例的采集instance(每個instance代表一個線程)一旦掛掉,會在集群中的負載最低的工作節點上重新啟動一個instance,繼續從上次掛掉的Offset進行采集,不會造成Binlog的丟失和重復。

(3) 負載自動均衡

假設所有Binlog的集群有八個節點,其中有七個節點的負載比較高,當你在接入Binlog時,在沒有人工介入的衡量下,整個集群會將以新接入的一個Instance采集實例,自動選擇一個健康度最高的Wave服務,然后啟動Binlog采集。

(4) 支持多種MQ

BinLake采集到的所有binlog的event會被封裝成Message發送給MQ,目前我們支持JMQ和Kafka兩種MQ產品。

(5) 支持集群橫向擴容

當BinLake集群的服務能力達到了瓶頸,我們可以簡單地將新的工作節點啟動,只需要在新的工作節點配置文件中配置上與線上的工作節點相同的ZooKeeper路徑,新的工作節點就會自動加入到已存在的BinLake集群中。

3、DBS

DBS主要完成自動化運維的工作。它可以完成數據庫服務的自動化交付、數據庫操作的流程化管理、數據庫健康指數全面監控、數據庫自動備份及結轉,以及調度作業的多樣化調度(包括定時、依賴以及觸發三種調度模式)。

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

三、整體架構

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

這是京東數據庫的一個整體架構圖。可以看到,最底層是JDOS2.0,JDOS 2.0是京東新一代的容器技術,是Docker的管理平臺,實際上京東所有的數據庫服務現在已經完全運行在Docker之上了,這一點是讓我們比較引以為豪的工作成績,而這些都離不開京東JDOS的底層支持。

JED包括六大組件:

JED-Gate:實現分庫分表的透明化路由和審計功能。 JED-Ctl:命令行控制工具。 JED-Ctld:也提供集群控制功能,但是它是以服務的方式提供API接口。 Topology:是整個JED的元數據管理中心,所有的元數據是通過Topology進行管理的。 JED –Tablet:是每一個MySQL前端的Proxy,提供MySQL查詢緩存和流復制等。 JTransfer:在線數據遷移和接入工具。

BinLake的服務角色比較簡單,只有兩種服務:Wave和Tower。

BinLake整個集群是完全無狀態的。我們所知道的大部分集群化服務都是有狀態集群和不對等集群。所謂不對等集群就是集群里要有Master服務角色,負責整個集群的管理;還要有Worker服務角色,負責實際任務的執行。但整個BinLake是沒有任何Master的,只有一種服務角色:Wave,就是你的工作節點。Tower只是一個可以與集群進行交互式操作的HTTP服務。Tower與傳統Master節點的不同之處在于:它不負責任何元數據的管理,它只是向Topology服務發送命令,更新或者獲取存儲在ETCD或ZooKeeper中的元數據信息。

DBS是構建于我們的API Platform之上的,API Platform是我們自己開發的一個簡單的Faas平臺,有了API Platform,在京東只要是會寫代碼的人,不管你用何種開發語言,只要是滿足Restful協議的服務,都可以注冊到API Platform中,并不斷豐富DBS。

DBS包括幾個核心模塊:

JGurd 是一個分布式檢測系統,它提供了對MySQL服務的完全分布式檢測,避免了因為網絡抖動而產生對MySQL健康狀況的誤判。 Scheduler是調度平臺,是基于Oozie改造開發的集群調度平臺。 JProcess Maker是DBS的流程引擎。 DBS-Tools是我們在數據庫運維過程中需要用到的一些數據庫工具,比如說AWS報告、監控工具、Master切換工具、域名漂移工具等。 Authentication是京東內部的身份認證和權限控制組件。

下面我們針對JED、BinLake和DBS的架構進行詳細講解。

1、JED

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

JED的前端是AppServer,從整體架構上,JED和Appserver直接打交道的只有一個角色,就是JED-Gate,JED-Gate完全兼容MySQL協議,AppServer可以一些查詢語句發送給JED-Gate,JED-Gate層對所有查詢的查詢執行計劃都會做緩存,并且根據查詢執行計劃,通過Topology服務獲得查詢所涉及表的路由源數據信息,根據元數據信息將查詢語句改寫或者拆分發送到底層的Shard上去。目前JED已經滿足了廣域分布架構,實現了異地多活。

2、BinLake

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

針對上圖的BinLake架構圖,可以看到BinLake集群中的每個工作節點叫做Wave,每個Wave節點上有多個instance,這個instance就是針對于每個MySQL實例的Binlog采集線程,在同一個Wave實例上的多個instance實例通過Epoll模型實現高效網絡監聽和通訊。當用戶新采集一個MySQL的Binlog或者某個instance線程掛掉了,會根據當前集群中各個Wave服務的健康狀況選擇一個健康度最高的Wave實例,去實例化這個新的instance線程。而每個Wave實例上的健康度是根據Zabbix的監控數據進行動態計算的。

從圖中可以看到,Tower服務其實沒有跟Wave服務做任何直接的通訊或者聯系,Tower只會跟ZK或ETCD集群直接做交互,它對ZK或者ETCD集群任何元數據的更改都被Wave服務及時發現,發現之后,Wave服務會采取一系列相應的措施,來對元數據的更改進行響應。

3、DBS

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

DBS依賴于兩個基礎的服務進行構建,第一個是API Platform,第二個是JDOS, 通過API Platform實現DBS整個系統所有功能模塊的完全解耦,因為所有的底層操作都是單獨開發的符合Restful標準的HTTP服務,并通過API Platform暴露出來。不管是研發人員還是DBA,無論使用什么樣的開發語言,只要能夠開發出符合Restful的HTTP服務,就可以將其注冊到API Platform上,并實現DBS系統中特定的功能。

其實無論是JGuard、JProcessMaker、DBS-Tools還是Scheduler,它們做的所有工作都只有一樣:調用API Platform上所暴露的接口。API Platform會根據你的注冊信息,去調用Tower暴露的API接口,或者是調用MHA的一些腳本或者其它接口。

另外,不管是DBS的應用服務器、MySQL服務器、API Platform,后端寫的所有接口,我們都會采集這些服務上的所有日志,采集了之后接入到Unilog Platform,用于后續的日志的審計和檢查。

四、實現細節

由于京東彈性數據庫包含的功能和組件很多,下面我選出幾個特定的功能,在實現細節上詳細說明。

1、動態在線擴容

Step1:創建兩個目標Shard

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

假設某個業務方在JED中起初申請了一個Shard,這個Shard大家可以把它簡單地想象成是一套MySQL集群,這時我要將它擴容成兩個Shard。

假設現在有一萬條記錄,要擴成兩個Shard,那么每個目標Shard里面就有5000條。在JED里,在觸發擴容這個動作時,首先會通過 JDOS接口,將目標Shard的所有POD都創建并啟動起來,如果每個目標Shard都是1主2從,總共會啟動6個POD,12個Container(一個POD中有2兩個Container,1個Container中是Tablet服務,1個Container是MySQL服務),然后每個POD都是 Not Sevring狀態,其中每三個POD實例組成一個Target shard。可以看到,Source Shard中的sharding key對應的key range是:0x00-OxFF,這里的 KeyRange也就是你的sharding key經過哈希之后能夠落到多大的范圍,現在要將一個Source Shard分為兩個Target Shard,所以Source Target對應的Key Range也要就要一分為二,可以看到兩個Target Shard 對應的KeyRange是0x00-Ox80,Ox80-Oxff,并且是Not Serving狀態。

Step2:全量數據過濾克隆

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

兩個Target Shard建立之后,會根據ETCD里的默認配置針對每個Target Shard建立MySQL的復制關系,比如一主兩從:一個Master,一個Replication,一個ReadOnly;一主三從,一個Master,兩個Replication,一個Readonly;一主四從,一個Master,兩個Replication和兩個ReadOnly。

建立完復制關系之后,首先會通過JED-Worker將Source Shard中的Schema信息復制到兩個TargetShard中,然后將Source Shard中的ReadOnly Pod從MySQL復制關系中摘除下來,最后通過JED-Worker將ReadOnly中的數據過濾拷貝到兩個TargetShard中。

Step3:增量數據過濾到兩個目標Shard

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

現在我們以最簡單的一拖二的方式來講述。當你的兩個TargetShard建立完成后,你要做的就是先把你的這一萬行記錄拷到兩個shard上,拷完之后去建立過濾復制。

完成了Step2的過濾拷貝之后,將ReadOnly重新掛到Source Shard上,然后JED-Worker通過Replication中的接口創建binlog的過濾復制,會在Replication上啟動兩個協程,并根據Target Shard的Key Range分別將binlog復制到對應的TargetShard上。

Step4:數據一致性校驗

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

當TargetShard中的binglog與SourceShard中的binlog的lag小于5秒的時候,會啟動數據的一致性校驗,該過程是在JED-Worker上完成的。過程很簡單,就是通過大量的后臺協程Target和Source上去取出數據一條一條對比,如果數據的一致性校驗通過,就開始進行Shard切換。

Step5:切Shard

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

首先將SourceShard中Slave的Serving狀態切換成Not Serving,同事將TargetShard中Slave的Not Serving狀態更改為Serving,最后將Source中的Master停寫,等Target中的Master與Source中的Master無復制延時后,將Source Master停寫,通過JED-Worker將過濾復制斷掉,然后將Target的Master置為Serving狀態,并接受寫入。

上述的所有Serving與NotServing狀態的改變均是通過改變etcd中的元數據來完成的。當前端性業務再發送新的查詢過來時,Gate就會根據最新的元數據信息,將你的這條SQL發送到最新的Target Shard。

2、自動FailOver

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

以1主3從的MySQL主從架構對JED的自動FailOver機制進行說明。

如果Master發生異常,JGuard會通過分布式檢測(JGuard是通過ORC改造之后形成了一個分支檢測服務)檢測異常,檢測到異常之后會通過郵件和短信通知業務接口人,通知完之后,不會等業務接口人進行處理,直接從當前整個MySQL集群當中選擇一個GTID最大的一個MySQL實例,將這個MySQL實例切成Master,并根據新的Master重建新MySQL主從復制關系,將剩余的Replication和ReadOnly重新掛載到新的Master上,再調用JED-Ctrld服務的接口更新ETCD中的元數據,這樣后續的DDL/DML就會發到最新的Master之上。最后缺失的一個Tablet需要人工補入。

3、Streaming Process

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

JED實現了查詢的流式處理,以查詢語句select table_a.age from table_a order by table_a.age為例說明流式處理的過程。JED-Gate接收到該查詢語句之后,會根據ETCD中的分片元數據,將該語句分發到三個Shard中,各個Shard返回給JED-Gate數據本身就是有序的,在JED-Gate中針對每個Shard都會有一個buffer與之對應,每個buffer用來流式的接收每個Shard返回的排序完畢的數據,因此該buffer中的數據也是有序的。然后將每個buffer的首地址存儲到一個PriorityQueue里面, PriorityQueue是一個堆排序的優先級隊列,會根據每個buffer中的首元素不斷的進行排序。每從PriorityQueue中取出一個元素,PriorityQueue都會調整Buffer的先后順序,JED-Gate會將元數一個一個地取出來,以流式的方式發給前端,從而實現整體流式排序。

4、Join處理

現在我們看下如何在JED上執行Join查詢的,在下面所有的說明中,我們都有一個假設條件,就是所有的表的sharding key都是ID。

對Join查詢的處理,要分情況:

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

第一種情況:Join Key與Sharding Key相同。這種情況下由于Join Key 和 Sharding Key是完全相同的,因此是可以將Join查詢語句直接發送到下面的每個shard,在JED-Gate匯聚各個shard的部分查詢結果,并返回給前端應用。

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

第二種情況:Join Key與Sharding Key相同。如上圖所示,比如Select a.col,b.col.from a join b on b.id_2=a.id where a.id=0。針對該查詢語句,JED-Gate首先對其進行SQL語句改寫,改寫為兩條語句:select a.col,a.id from a where a.id=0和select b.col from b where b.id_2=a.id。在第二個查詢語句中的a.id是綁定變量。JED-Gate會首先根據select a.col,a.id from a where a.id=0,定位到該SQL需要定位到哪個shard,然后將SQL發送到相應的Shard執行,并流式的獲取其結果,然后將結果中的a.id字段的值取出,并將值賦給select b.col from b where b.id_2=a.id語句中的綁定變量a.id,然后將復制后的第二條SQL語句依次發送給所有的shard,并將結果與第一條SQL語句中的結果組合,流式地返回給前端。

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

當多級Join的時候,也是相同的思路,這里不再贅述。

5、BinLake元數據架構圖

前面已經提到BinLake有一個很大的特點:一個完全無狀態的集群,沒有Master管理節點。而要實現這個特性最重要的就是要有合理的元數據設計。之所以沒有Master節點,是因為把Master節點的功能委托給了ZooKeeper或ETCD。通過借助ZooKeeper中的ephemeral znode實現了Wave服務乃至instance的自動發現和HA,并最終實現了無Master,無狀態的完全對等集群。

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

根據上面的元數據架構我們對BinLake的所有元數據進行詳細說明。

一個BinLake集群的root znode是一個名為wave的znode,在wave之下是一系列的形式為:“MySQL域名命名:port”的znode。這樣的每個znode都對應了一個MySQL實例。而在每個MySQL實例對應的znode下面是該MySQL實例的管理、信息保存和選舉znode。其中counter節點中記錄了當前MySQL實例對應的instanc重啟了幾次,若連續重啟超過7次,就會發出報警信息。而dynamic節點則記錄了每個MySQL實例對應的Binlog采集線程對應的快照信息,包括:當前采集到的Binlog文件、Offset、Timestamp、GTID、最近的10個時間點Binglog位置和Filter Rules等,從而保證instance重啟后,可以利用這些信息繼續進行Binlog采集。后面的sequencenumber對應的一系列znode是由Curator自動創建的znode,來保證選舉的正確性和防止羊群效應。而“Bingdleader:wavehost”對應的znode,主要用于人工介入binlake,從而指定讓下次instance leader選舉的時候,固定在wavehost對應的Wave節點上。

如果我某個MySQL采集的Instance掛了,Curator就會在后面的第一個znode對應的wave服務上首先進行leader選舉,若成功選舉,就接入,否則依次對后面對應的每個Wave實例進行選舉,直到成功選舉出leader。選舉出新的leader之后,就會在對應的Wave服務上重啟Binlog采集的instance線程,該instance就會根據dynamic znode中存儲的快照信息重建MySQL的復制關系,繼續進行Binlog采集。

6、集群化Binlog訂閱

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

BinLake中的Binlog采集方式有兩種:時序和亂序。

時序:通過NIO實現的類似Epoll的網絡模型監聽所有與MySQL之間的鏈接的網絡事件等檢測到與某個MySQL之間的連接有byte流到達時,就會盡量多的讀取所有的byte流,將其全部放到一個Byte Buffer里,然后通過Worker Thread對ByteBuffer中的Byte進行Decode,并解析成一個個的EventMsg,進而將EventMsg也放到一個MessageBuffer中,在MessageBuffer后面有一個Handler線程,這個Handler線程會根據ZooKeeper里的一些元數據信息(比如:Topics、FilterRules、MQ類型和地址等)對EventMessage進行處理,然后使用protobuff進行序列化后發送到正確MQ中的特定的Topic里。這里的處理包括:根據庫表類型過濾、列過濾、事務頭Event和尾Event過濾等。

亂序:同從上圖中可以看出亂序處理與時序處理的前半部分是相同的,只是在EventMessage Buffer后面是通過線程池進行并發處理的,測試結果表明亂序處理的性能是時序處理性能的10倍。

五、落地使用

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

從上圖可以看出,JED數據庫中間件服務通過JTransfer來實現MySQL和JED之間的數據正反向同步和傳輸。現在JED可以實現MySQL向Oracle、Postgres等多種數據庫的實時數據同步和傳輸。BinLake可以對MySQL和JED中的Binlog進行采集,并發送到JMQ或者Kafka,在MQ后端有兩種使用方式:

通過Spark Streaming把它同步到HBase里,目前京東內部實際上是有一個項目叫做實時數據快照,就是通過這種方式,實現了HBase中的數據與線上MySQL實例中的數據的完全實時同步更新。

下游各個業務部門各自通過Consumer消費,進而進行訂單積壓監控、智能報表以及營銷實時推薦等。當然JED以及BinLake、Jtransfer都是通過DBS進行自動化運維、調度和管理的。

京東彈性數據庫落地狀況

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

這些是在9月份從DBS系統里面拿到的,服務線上業務是指上線項目的個數,目前京東彈性數據庫服務了線上3122個項目,管理的MySQL實例個數有將近兩萬個,管理的Table就比較多了,有660多萬個,并且完成了自動在線切換2700余次,自動化上線有27000余次。現在京東有一般的業務都遷到了JED上,當然還有一半的業務正在容器化的MySQL服務上并逐步地進行遷移。

分片數與OPS、延時的關系情況

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

上圖是JED的分片數與OPS以及分片數延時的一些關系。從圖中可以看出,隨著分片數的增加JED的服務能力也出現線性增長的趨勢。而隨著分片數的增加延時幾乎沒有變化(延時的單位是毫秒)。

Gate數與OPS、延時的關系情況

全面Docker化之后,京東彈性數據庫的最新實踐與突破!

上圖是Gate數目與OPS以及Gate數目與延時的關系。從圖中可以看出,通過簡單的增加Gate的數目而實現JED數據庫服務能力的橫向擴展,不會導致明顯的延時增加。

問答環節

【問題1】想咨詢一下咱們的JED做故障切換之后,如果存在數據的復制延遲,這時直接把它切為Read Write狀態,有部分的Binlog數據還沒追上來,臟數據怎么辦?這部分臟數據是人工介入進行處理,還是有什么其它方案來把它自動處理?

答:JED在做Master FailOver時,實際就是你在后端做分片的時候,看MySQL的復制模式是半同步還是異步,如果是半同步,一旦發現你的Master Fail Over,不會出現所有Slave都lag Master的Binlog。

追問:就是說在Binlog追上之前還是ReadOnly狀態,binlog完全追上之后,才切換為ReadWrite嗎?

答:舉個例子,比如說你后端Master下掛了兩個Slave或者是多個Slave,因為你啟用的是半同步,那么只要你里面沒有任何一個追上Master(相當于是你的Master都是 ReadOnly狀態),這個并不是說在Failover里存在這個問題,而是即使單純的MySQL服務啟用的若是半同步,當沒有任何一個Slave追上Mater的時候,Master肯定是ReadOnly。

【問題2】老師好,因為剛才我聽了JED,想問一下JED里有沒有異構數據庫?比如說,如果我要像你說到的有互相轉這種情況,那么我要同時轉幾個表,在不同的異構數據庫里面,我要如何保證它的查詢速率?比如說各個表,我同事要加一個索引,我有沒有統一配置的情況,還是集群里的每個庫都要重新再各配一次?

答:說實話,沒聽太清楚你說什么,就說一個實際的例子吧,你的意思就是說JED里面有一個庫,實際上就叫KeySpace,下面有四個分庫或者四個分表你現在要統一對KeySpace中的所有分庫或者分表加索引,它怎么去做,是嗎?

追問:是每個分庫都要加嗎?這樣的話是不是每個分表都要加一條索引,有沒有可以統一一次性配置的功能?

答:在JED里面實際上是有一個控制臺的,目前不支持直接通過Gate執行DDL,就是說DDL在Client或是通過JBDC Driver是不允許執行的,直接就會報錯,你如果要執行DDL,是通過DBS自動化上線流程通過JED Ctld服務去執行的,Ctld服務會找到你KeySpace下的所有Shard,然后在每個Shard里面去執行這些DDL。

【問題3】有兩個問題想請教一下,一是剛才演講中聽您說這個彈性數據庫有好和壞的東西,那我能不能單獨用一個組件一樣的東西直接移植到JED上,其它東西不用行不行?我這邊的這個數據庫是主要是可以擴容的,但我們業務簡單一點,可能沒那么多。

答:京東彈性數據庫現在包括三大模塊,你可以單獨地去用JED或者BinLake,但你不能夠單獨去用DBS,因為你如果單獨用JED或者BinLake,你是可以脫離京東的自動化運維管理系統的控制,后續的審批當然是沒有了的,可你對于BinLake這個集群以及JED的管理,是完全依賴于它的API是做控制的,就是說,后續假如說你公司有自己的一套運維管理系統,你可以基于BinLake或者JED的API,跟你的自動化運維管理系統集成,這個沒問題,但你如果只用DBS就不行了,因為DBS是完全地跟京東的JDOS耦合的,這就是為什么我們可以實現數據庫服務資源的一個自動化交付和自動化運維,實際上是建立在這個JDOS之上的,因為京東所有的數據庫都已經上Docker了,所有的數據庫服務均運行在Docker里,不管是JED還是傳統的MySQL服務,都是運行在Docker之上的,所以說你只能夠單獨地用其中兩個組件,一個是BinLake,一個是JED。

追問:另外一個問題就是說,因為你說的三個模板塊,那么現在這個彈性數據庫有沒有可能做成一個像包一樣的形式或一個統一的安裝軟件之類的東西,有沒有這樣的計劃呢?

答:先回答第一個問題,三個模塊是不會合到一塊的,因為我們之所以把它分開就是為了實現解耦,我們現在正在啟動內部的一些私有云的數據庫服務,就是說后續對于我們京東內部的用戶來說,你只需要申請就行了,有點像你用阿里的RDS一樣,但我們不會對外提供服務,同時我們的JED和BinLake馬上就會開源了,你馬上就可以使用到了。

來自:http://database.51cto.com/art/201801/563260.htm

標簽: 京東
主站蜘蛛池模板: 国产激情一区二区三区成人免费 | 国产精品毛片一区视频播 | 亚洲欧美一区二区三区在线 | 日韩字幕一区 | 久久毛片 | 91精品视频在线播放 | 日韩电影a | 精品久 | 日韩成人一区二区 | 人妖天堂狠狠ts人妖天堂狠狠 | 国产一级淫片a级aaa | 国产毛片一区二区 | 日韩不卡一二三 | 中文字幕乱码一区二区三区 | 日韩三级电影在线免费观看 | 欧美在线观看一区二区 | 国产精品美女一区二区三区四区 | 亚洲三级网站 | 一区二区不卡 | 国产精品久久久久久亚洲调教 | av久久| 欧美一区二区三区精品 | 日韩欧美在线免费观看 | 久久久精品久久久久 | 99这里只有精品视频 | 曰韩在线| 琪琪午夜伦伦电影福利片 | 婷婷成人免费视频 | 成人亚洲免费 | 国产精品亚洲欧美日韩一区在线 | 亚洲日韩欧美一区二区在线 | 日本精品在线观看 | 久久综合一区二区三区 | 最新日韩在线观看视频 | 久久国产婷婷国产香蕉 | 欧美操穴 | 日韩91| 国产精品1 | 91精品国产高清一区二区三区 | 欧美激情一区二区三级高清视频 | 日韩精品 | 久久亚洲一区 | 精品在线看 | 日韩av一区二区三区在线观看 | 国产青青草 | 一区毛片 | 亚洲福利二区 | 操人网| 日韩成人中文字幕 | 国产成人精品一区二区三区视频 | 成人不卡在线 | 国产精品成人国产乱一区 | 麻豆久久久久久 | 国产在视频一区二区三区吞精 | 国产高潮在线观看 | 国产在线不卡 | 精品视频一区二区三区四区 | 成人午夜精品久久久久久久蜜臀 | 国产精品久久久久久吹潮 | 久久成 | 91麻豆精品国产91久久久资源速度 | 日韩精品一区在线 | 亚洲一区二区三区在线视频 | 精品视频一区二区三区 | 精品视频一区二区三区 | av在线中文 | 欧美视频免费 | 一区二区三区国产视频 | 久久兔费看a级 | 日韩国伦理久久一区 | 日韩在线一区二区 | 亚洲免费在线视频 | 草草草久久久 | 欧美一区二区在线视频 | av日韩一区 | 手机亚洲第一页 | 国产一区二区三区四区在线观看 | 超碰97人人人人人蜜桃 | 国产成人精品一区二 | 久久精品国产亚洲blacked | 久久久99精品免费观看 | 日韩高清不卡一区二区三区 | 福利三区| 欧美日视频 | 成人三级在线 | 日韩av一区二区三区在线 | 99这里只有精品视频 | 中文字幕高清av | 国产日韩欧美综合 | 亚洲国产精品一区二区第一页 | 美日韩精品视频 | 999久久久国产999久久久 | 一区二区三区四区视频 | 日韩在线观看一区 | 免费观看国产视频在线 | 狠狠av| 午夜影剧院 | 欧美一级黄色片 | 九九视频在线观看视频6 | 美女黄网| 欧美精品一区二区三区在线 | 欧美成人综合视频 | 欧美日韩综合一区 | 久久久2o19精品 | 成人欧美一区二区三区色青冈 | 91视频免费观看 | 一区二区三区视频在线观看 | 国产区视频在线 | 久久www免费视频 | 青草福利 | 伊人网91 | 国产精品一区二区不卡 | 天天干国产 | 欧美日韩在线免费观看 | 天天天堂 | 国产精品乱码一二三区的特点 | 日韩成人影院 | 97人人干| 看片国产 | 不卡的av电影 | 农村末发育av片四区五区 | 日韩欧美一区二区在线 | 九九久久久 | 欧美永久精品 | av观看在线| 国产中文字幕一区 | 国产美女自拍视频 | 久久久精品日本 | 中文字幕在线看 | 91免费看网站 | 男人电影天堂 | 精品亚洲一区二区三区四区五区 | 精品久久久久久久久久久 | 一区二区福利 | 婷婷亚洲五月 | 精品香蕉一区二区三区 | 国产网站视频 | 黄色在线免费 | 国产精品久久久久久久久免费 | 特黄一级 | 一区在线免费观看 | 色免费在线观看 | 久久伊 | 国产精品久久久久久久娇妻 | 中文日韩在线 | 黄色免费av| 91综合网 | 国产精品久久久久久亚洲调教 | 在线免费av观看 | 国产伦精品一区二区三区在线 | 欧美精品1区 | 成人一级片视频 | 免费一区二区三区 | 在线视频 亚洲 | 日韩免费 | 国产精品99| 国产精品无码久久久久 | 久久综合狠狠综合久久综合88 | 国产精品三级视频 | a级在线| 天天操天天操 | 看一级黄色大片 | 国产精品一区二区视频 | www.日韩.com| 激情久久av一区av二区av三区 | www,99热| 欧美成人高清 | 精品亚洲永久免费精品 | 亚洲高清视频一区 | 国产精品久久久久9999鸭 | av中文字幕在线播放 | 羞羞视频在线免费 | 欧美日韩高清不卡 | 精品日韩欧美一区二区三区 | 久久久精品国产 | 成人免费视频观看视频 | 日韩国产一区二区三区 | 精品久久久久久久久久久久久久 | 欧美一区二区三区免费 | 久久不卡 | 精品国产91乱码一区二区三区 | 国产欧美精品区一区二区三区 | 不卡在线一区 | 成人av在线网 | 精品国产一区二区三区久久久 | 精品久久久久久久久久久久包黑料 | 亚洲精品在线视频观看 | 我看一级毛片 | 97久久精品人人做人人爽50路 | 精品一区二区三区在线观看 | 欧美在线综合 | 色爱av| 精品视频一区二区三区四区 | 99精品视频免费在线观看 | 亚洲欧美在线视频 | 午夜视频在线观看网站 | 99久久99久久精品国产片果冻 | 99re视频在线 | 亚洲性视屏 | 亚洲成人高清 | 免费黄色片在线观看 | 国产成人精品免费 | 欧美久久综合 | 亚洲精品女优 | 91在线观看视频 | 欧美日韩在线免费观看 | 亚洲精品一区在线观看 | 国产成人在线一区二区 | 久久最新 | 久久久精品网 | 欧美日韩在线一区二区三区 | 日韩中文字幕在线视频 | av看片网 | 操操操影院 | 在线日韩欧美 | 91在线看 | 欧美激情一区二区 | 山岸逢花在线 | 欧洲一区二区三区 | 草久av | 玖玖精品 | 91亚洲国产精品 | 久久的爱 | 日韩精品一区二区三区在线播放 | 欧美天天 | 中文字幕在线永久 | 黄色影视网址 | 国产欧美精品一区二区三区 | 99热热热 | 久久最新网址 | 欧美日韩在线一区二区 | 成人夜晚看av | 一级毛片观看 | 成人欧美一区二区三区在线观看 | yiren22综合网成人 | 一区二区av在线 | 久久成人免费视频 | 久久综合中文字幕 | 国产偷自视频区视频 | 国产欧精精久久久久久久 | 日本久久精品 | 国产精品入口麻豆www | 在线观看免费黄色片 | a√免费视频 | 久久mm| 国产精品视频一区二区三区四蜜臂 | 精品国产一区二区三区av片 | 中文字幕 欧美 日韩 | 三级黄色片在线播放 | 国产精品久久久久久二区 | 亚洲一本 | 影音先锋成人资源网 | av在线日韩| 午夜三级在线 | 国产黄色免费网站 | 在线成人一区 | 日日夜夜天天 | 日韩一区二区三区在线播放 | 一区二区网站 | 99热精品在线 | 国产一区二区免费 | 日本一区二区三区四区 | 亚洲一区中文字幕 | 黄色一级毛片免费 | 人人人射 | 97精品久久 | 免费二区 | 久久久精品国产 | www.99精品| 亚洲欧美网站 | 亚洲精品影院 | 99精品欧美一区二区三区 | 一本一道久久a久久精品综合蜜臀 | 亚洲精品成人av | 欧美污污 | www.国产在线 | 色小妹一二三区 | 国产性色 | 午夜激情视频在线观看 | 亚洲人人艹| 免费h| 中午字幕在线观看 | 欧美在线操 | 在线观看亚洲专区 | 天天操网址 | 国产视频99 | 久久91精品国产 | 色接久久| 久久久一区二区三区 | 欧美日一区二区 | 簧片毛片 | 成人精品视频一区二区三区 | 91污在线观看 | 久草电影网 | 亚洲成人伊人 | 国产精品毛片久久久久久久 | 国产麻豆乱码精品一区二区三区 | 国产1区2区 | 国产欧美精品一区二区三区 | 亚洲xx视频 | 成人a级片在线观看 | 天天看天天爽 | 国产成人精品高清久久 | 久久久久久免费看 | 久久久精品网 | 免费观看一区二区三区毛片软件 | 亚洲精品二区 | 久久精品电影网 | 99精品欧美一区二区蜜桃免费 | 中文字幕在线免费看 | av在线成人 | 日韩欧美自拍 | 久久高清 | 久草在线资源福利站 | 五月激情天 | 一级电影免费在线观看 | 欧美全黄| 免费毛片网| 久精品视频 | 亚洲精品国产综合 | 成人在线观看免费视频 | 激情欧美一区二区三区 | 日韩一区二区三区在线视频 | 国产精品视频一区二区三区 | 午夜精品久久久久 | 一级特黄网站 | 99精品欧美一区二区三区 | www.888www看片| 国产男人天堂 | 不卡的免费av | 国内精品视频一区二区三区八戒 | 免费黄色毛片视频 | 中文字幕国产在线视频 | 中文字幕视频在线播放 | 欧美国产综合一区 | 91久久艹 | 精品一区二区三区视频 | 天天操免费 | 成人精品一区 | 午夜免费在线 | 日韩国产一区 | 免费一区| 特一级黄色片 | 国产激情一区二区三区成人免费 | 免费一区二区三区 | 青草成人免费视频 | 伦理午夜电影免费观看 | 99r精品在线 | 香港三级日本三级a视频 | 伊人欧美在线 | 亚洲男人的天堂网站 | 久久久久久免费看 | 三级黄色片在线观看 | 久久久久久久久久久成人 | 国产欧美在线 | 久草电影网 | 亚洲综合久久网 | 97久久精品| 天天操夜夜爽 | xvideos.蜜桃一区二区 | 狠狠爱亚洲 | 久免费视频 | 亚洲欧美日韩另类精品一区二区三区 | 久久久精品欧美 | 久久久精彩视频 | 国产一级二级毛片 | 七七婷婷婷婷精品国产 | 久久久久久一区 | 国产激情91久久精品导航 | 久久国产精品免费一区二区三区 | 成人免费在线观看视频 | 日韩手机电影 | 午夜激情福利视频 | 日韩av免费在线观看 | 一区二区在线视频免费观看 | 久久99影视 | 中文字幕av一区二区 | 亚洲国产aⅴ成人精品无吗 一区视频在线 | 激情视频在线观看免费 | 中文成人无字幕乱码精品 | 亚洲福利影院 | 欧美久久久久久久久久 | 国产日韩欧美在线观看 | 一级激情片 | 亚洲一区视频在线 | 亚洲电影一区二区 | 久久久久亚洲av毛片大全 | 国产日韩欧美一区 | 午夜精品久久久久久久久久久久 | 中国特黄毛片 | 欧美日韩在线精品 | 三级视频网站 | 欧美成人免费在线视频 | 日韩在线观看视频免费 | 久久涩 | 亚洲成人网一区 | 一级黄色片看看 | 国产精品久久久久国产a级 日韩在线二区 | 午夜影院在线观看 | 国产成人精品免高潮在线观看 | 性xxxxxxxxx18欧美 | 国产精品99久久久久 | 欧美性影院 | 香蕉av在线 | 欧美精品久久久久 | 成人免费的视频 | 国变精品美女久久久久av爽 | 国产一区二区三区免费 | 国产区视频在线观看 | 久久99视频这里只有精品 | 操夜夜 | 欧美午夜一区二区三区免费大片 | 久久涩 | 在线免费视频成人 | 免费av电影网站 | 欧美日韩伊人 | 亚洲高清不卡视频 | 亚洲精品乱码久久久久久金桔影视 | 欧美一区二区在线视频 | 中文字幕高清一区 | 永久免费在线 | 精品国产一区在线 | 国产精品美女久久久久aⅴ国产馆 | 日本亚洲一区 | 天天操天天插天天干 | 日韩成人在线一区 | 国产精品久久 | 久久久久久香蕉 | 久久久久国产一区 | 午夜妇女aaaa区片 | 91久久久久久久久久久久久 | 久久久久99精品国产片 | 精品96久久久久久中文字幕无 | 免费在线观看一区二区 | 国产一区二区三区视频 | 羞羞视频在线免费 | 色网在线观看 | 久草成人| 国产精品久久久久久久7电影 | 免费观看羞羞视频网站 | 青青草久久 | 日韩精品一区二 | 一区二区色 | 看亚洲a级一级毛片 | 黄a在线| 亚洲国产精品久久久 | 国产综合视频 | 日本中文字幕在线播放 | 国产精品美女www爽爽爽软件 | 久草观看 | 免费日韩成人 | 欧美午夜一区二区三区 | 免费在线观看av的网站 | 欧美一区二区在线观看 | 国产精品69毛片高清亚洲 | 黄网免费| 日韩免费精品 | 精品九九九 | 色综合久久一区二区三区 | 岛国免费 | 一区二区三区视频免费在线观看 | а_天堂中文最新版地址 | 国产欧美综合一区二区三区 | 亚洲欧美电影 | 亚洲欧美日韩另类一区二区 | 国产成人精品一区二区三区四区 | 日韩高清一区 | av电影中文字幕在线观看 | 在线观看欧美一区二区三区 | 亚洲女人天堂成人av在线 | 国产黄色大片 | 97综合色 | 精品国产31久久久久久 | 亚洲国产成人av好男人在线观看 | 青青久久 | 欧美成人黄激情免费视频 | 国产午夜精品一区二区三区嫩草 | 午夜日韩在线观看 | 日本理论片好看理论片 | 成人欧美一区二区三区在线播放 | 在线观看精品自拍私拍 | 欧美成人激情视频 | 日本一区二区不卡视频 | 精品国产青草久久久久福利 | 四虎成人永久 | 日韩中文字幕av | 成人在线高清视频 | 日韩欧美一区二区三区免费观看 | 日韩精品一区二区三区在线观看 | 国产99久久久国产精品 | 羞羞视频免费网站 | 久久99精品久久久久国产越南 | 亚洲福利小视频 | 污视频在线免费观看 | 在线精品国产一区二区三区 | 久草视| 久久久免费av | 精品影院| 天天躁人人躁人人躁狂躁 | 国产精品一品二区三区的使用体验 | 精品久久久久久久久久久久久久 | 亚洲视频在线观看一区二区三区 | www.国产| 天天干在线影院 | 国产精品二区三区在线观看 | 国产成人精品一区二区三区视频 | 亚洲一区二区三区在线视频 | 丝袜 亚洲 另类 欧美 综合 | 国产综合视频在线观看 | 韩国av片在线观看 | 欧美精品免费在线观看 | 99精品国产高清一区二区麻豆 | 91免费在线视频 | 在线视频一区二区 | jizz18国产 | a视频在线观看 | 午夜色播 | 国产日韩欧美一区二区 | 一级片在线观看 | 日韩欧美国产一区二区三区 | 久久久久久久久久久久网站 | 亚洲国产精品久久久久久久 | 国产女爽123视频.cno | 国产精品日韩一区二区 | 日韩久久精品一区二区 | 99免费在线视频 | 日韩一区二区中文字幕 | 欧美一级三级 | 午夜精品久久久久久久 | 成人av在线播放 | 特级淫片裸体免费看 | 少妇淫片aaaaa毛片叫床爽 | 久久99深爱久久99精品 | 日韩av高清在线 | 九九亚洲精品 | 91精品久久久久久久久久久久久久久 | 亚洲国产一区二区三区四区 | 亚洲高清视频在线观看 | 精品免费国产一区二区三区四区 | 亚洲国产91| 91精品国产色综合久久不卡98口 | 亚洲乱码一区二区三区在线观看 | 国产在线欧美 | 久久精品成人一区二区三区蜜臀 | 国产精品高潮呻吟久久av黑人 | 国产日日夜夜操 | 激情网站免费观看 | 精品无码久久久久国产 | 日韩二三区| 日韩高清国产一区在线 | 精品久久久精品 | 91精品久久久久久久久久小网站 | www.久久久| 久草免费在线 | a久久久久久 | 天天干天天操天天爽 | 国产精品久久久久久久久 | 国产精品久久嫩一区二区免费 | 亚洲特级| 青青草久草在线 | 精品国产31久久久久久 | 海外中文字幕在线观看 | 亚洲午夜精品 | 福利片在线观看 | av77| 久久综合久久久 | 最新国产福利在线 | 久久久久久久一区 | 色黄视频在线 | 久久99精品久久久久久琪琪 | 黄色一级片免费 | 亚洲人成人一区二区在线观看 | 欧美久久精品 | 毛片免费看 | 99re在线| 亚洲第一中文字幕 | 亚洲人人| 国产一区中文字幕 | 欧美在线播放 | 欧美日本韩国一区二区三区 | 国产精品无码永久免费888 | 亚洲国产欧美91 | 中文字幕精品三区 | 欧美一级免费播放 | 欧美亚洲三级 | 中国1级黄色片 | 日韩国产欧美一区 | 中文在线资源 | 在线观看成人高清 | 黄色免费视频 | 欧美在线一区二区三区 | 中文字幕在线播放第一页 | 精品免费久久 | 日本三级在线观看中文字 | 久久一视频| 欧美在线观看一区 | 亚洲精品在线免费 | 国产伦精品一区二区三区四区视频 | 亚洲视频自拍 | 成人在线网址 | 久久伦理电影 | 成人在线视频免费 | 99精品视频免费在线观看 | sese综合| 精品久久精品 | 依人成人综合网 | 日本一本在线 | 久久综合精品视频 | 欧美日韩中文字幕在线 | 日韩免费在线观看视频 | 国产精品免费看 | 亚洲精品国产综合区久久久久久久 | 国产精品香蕉 | 国产精品亚洲成在人线 | 国产欧美综合视频 |