国产精一区二区_午夜视频99_免费白白视频_中文字幕一区免费

熱門文章> oceanbase是什么?oceanbase基于什么開發(fā)的? >

oceanbase是什么?oceanbase基于什么開發(fā)的?

36氪企服點(diǎn)評(píng)小編
2021-06-03 16:38
1904次閱讀

     OceanBase是一種通用的分布式關(guān)系型數(shù)據(jù)庫,具有許多獨(dú)特的特點(diǎn)。比如多租戶,高可用性,極具彈性的擴(kuò)展能力等等。如果把OceanBase作為一個(gè)單獨(dú)的庫使用,那么它的分布式優(yōu)勢還沒有得到充分利用。本文著重介紹了一個(gè)基于分布式架構(gòu)的應(yīng)用程序,它充分利用了OceanBase數(shù)據(jù)庫的分布式優(yōu)勢,并提供給我們一個(gè)OceanBase基礎(chǔ),幫助我們更好地了解螞蟻金服建立在OceanBase之上的三地五中心異地多活架構(gòu)。下面就有小編為您帶來oceanbase基于什么開發(fā)的的相關(guān)介紹。

一、分布式數(shù)據(jù)庫開發(fā)相關(guān)問題

    好的性能首先是設(shè)計(jì)出來的,應(yīng)用如果追求極致的性能,就需要關(guān)注OceanBase里數(shù)據(jù)的相關(guān)事情。如:

  • 數(shù)據(jù)如何分布?
  • 數(shù)據(jù)如何讀寫?
  • 存儲(chǔ)容量瓶頸怎么辦?
  • 訪問性能瓶頸怎么辦?
  • 數(shù)據(jù)庫出故障時(shí)數(shù)據(jù)可用性和可靠性具體怎樣?應(yīng)用需要做什么特殊處理么?
  • 數(shù)據(jù)庫擴(kuò)展時(shí)應(yīng)用需要遷移數(shù)據(jù)么?數(shù)據(jù)遷移的時(shí)候?qū)?yīng)用有什么影響?

   這些問題對(duì)理解OceanBase的分布式特點(diǎn)很有幫助。后面我們逐步看看OceanBase是如何應(yīng)對(duì)。

二、OceanBase集群外觀

   首先簡介一下OceanBase集群的外觀。

    OceanBase是以集群形式運(yùn)行的,由一堆服務(wù)器組成。上圖是「三副本」部署,機(jī)器會(huì)分為三組,每組一個(gè)區(qū)域(稱為Zone),各個(gè)機(jī)器通過網(wǎng)絡(luò)互相訪問。沒有光纖交換機(jī)、共享存儲(chǔ)以及直連網(wǎng)線等。

    服務(wù)器通常建議CPU、內(nèi)存和磁盤盡可能的大,磁盤建議用普通SSD盤。普通服務(wù)器的好處是便宜,劣勢是可靠性和性能可能不如小型機(jī)那么高。也就是說OceanBase可以部署在一組可靠性和性能不是特別高的普通服務(wù)器上,卻提供了高性能、高可用和高可靠、彈性伸縮等多項(xiàng)能力。

    以上是一個(gè)OceanBase集群的外觀和能力,但是提供給業(yè)務(wù)的并不是這個(gè)集群的全部資源和能力,而是其子集,即租戶(Tenant)。

oceanbase是什么?oceanbase基于什么開發(fā)的?oceanbase

三、OceanBase多租戶特性

    OceanBase定義了一些基本的資源規(guī)格(Resource unit config,如4CPU8Gmem500Gdisk等),然后選取某類資源規(guī)格創(chuàng)建一組資源池(Resource Pool),此時(shí)集群資源就有一部分被分配出去了。最后將這個(gè)資源池關(guān)聯(lián)到一個(gè)新建租戶,則租戶就可以使用這個(gè)資源池的能力。

   OceanBase默認(rèn)有個(gè)sys租戶,管理整個(gè)集群。用戶租戶必須在sys租戶內(nèi)部創(chuàng)建。

    如下示例就是創(chuàng)建租戶的過程。

    OceanBase兼容了大部分MySQL連接協(xié)議和語法,租戶的使用體驗(yàn)跟MySQL實(shí)例很像。研 發(fā)可以在租戶里創(chuàng)建數(shù)據(jù)庫(Database)、表(Table)。還包括分區(qū)表等。

    OceanBase里描述數(shù)據(jù)的最小粒度是分區(qū)。普通的表(非分區(qū)表)就是一個(gè)分區(qū),分區(qū)表則包含多個(gè)分區(qū)。

    租戶的示意圖如下。租戶之間數(shù)據(jù)是絕對(duì)隔離,資源有一定程度隔離。研發(fā)可以將業(yè)務(wù)先垂直拆分為多個(gè)獨(dú)立的子業(yè)務(wù),分別使用不同的租戶或者集群。

四、OceanBase資源單元

    租戶里并不知道數(shù)據(jù)具體在哪個(gè)機(jī)器上,也可以說沒必要知道。只是租戶的性能還取決于運(yùn)維為租戶規(guī)劃的資源池分布情況,所以了解一下資源單元的分布特點(diǎn)對(duì)性能規(guī)劃也是有意義的。

    資源池(Resource Pool)是由一組資源單元(Resource Unit)組成。資源單元數(shù)量默認(rèn)跟Zone的數(shù)量一致或者是它的倍數(shù)(可以配置具體分布在哪些Zone以及每個(gè)Zone里的Unit數(shù)量)。

    資源單元具備一定的資源能力,是數(shù)據(jù)的容器。租戶擁有的資源單元規(guī)格和數(shù)量決定了這個(gè)租戶最大性能。資源單元可以在同一個(gè)Zone的不同節(jié)點(diǎn)之間自由遷移,OceanBase借此來維持各個(gè)節(jié)點(diǎn)的資源利用率盡可能維持一個(gè)均衡狀態(tài)。

oceanbase是什么?oceanbase基于什么開發(fā)的?oceanbase

五、OceanBase拆分設(shè)計(jì)

數(shù)據(jù)庫拆分

     數(shù)據(jù)庫拆分有兩種。

    一是垂直拆分。即按業(yè)務(wù)模塊拆分到不同的實(shí)例或庫里。為了模塊之間互不影響,拆分到不同的實(shí)例比較好。在OceanBase里實(shí)現(xiàn)時(shí)可以是拆分到同一個(gè)集群里不同租戶或者不同集群里的租戶都可以,取決于業(yè)務(wù)規(guī)模和數(shù)據(jù)庫集群規(guī)模。垂直拆分很好理解,后面不再贅述。

    一是水平拆分。即按某個(gè)業(yè)務(wù)維度將數(shù)據(jù)拆分到多個(gè)分片。這些分片可以是在一個(gè)庫或者不同庫或者不同實(shí)例的不同庫下。水平拆分實(shí)現(xiàn)又有兩類常用的選擇。如下:

  • 分庫分表。將一個(gè)業(yè)務(wù)表拆分到N個(gè)相同結(jié)構(gòu)的物理表中。中間件做業(yè)務(wù)表(邏輯表)到分表(物理表)的映射路由以及其他相關(guān)操作(如結(jié)果聚合計(jì)算)等。這個(gè)N個(gè)物理表可以在不同實(shí)例的不同分庫中。分庫的維度和分表的維度可以不一樣,比較靈活。
  • 分區(qū)表。將一個(gè)物理表設(shè)計(jì)為分區(qū)表,拆分到N個(gè)分區(qū)。分區(qū)表的各個(gè)分區(qū)結(jié)構(gòu)是數(shù)據(jù)庫內(nèi)部保證一致。OceanBase選擇的是分區(qū)表的水平拆分方式,并且支持二級(jí)分區(qū)表(即有2個(gè)不同的拆分維度疊加使用)。

     租戶分組的意義依然是為了在分布式架構(gòu)下盡可能將一個(gè)業(yè)務(wù)流程內(nèi)多次數(shù)據(jù)庫請(qǐng)求都約束在同一個(gè)Zone或者Region(注:OceanBase將地域相鄰的Zone定義為一個(gè)Region)里。

     能使用這個(gè)解決方案的業(yè)務(wù)都是能按用戶維度做水平拆分。有些業(yè)務(wù)的拆分維度跟用戶維度是沖突的,或者有些業(yè)務(wù)的數(shù)據(jù)只支持集中寫入等,不能做到上面這種多活,但也可以使用OceanBase,實(shí)現(xiàn)單點(diǎn)寫入,多點(diǎn)讀取的功能。

      OceanBase在異地容災(zāi)體系結(jié)構(gòu)和多活體系結(jié)構(gòu)中的價(jià)值在于,它支持水平分割規(guī)則的定義,解決了多個(gè)機(jī)房之間的數(shù)據(jù)同步和一致性問題,并始終提供高可用性和彈性擴(kuò)展等功能。 以上就是小編為您介紹的oceanbase基于什么開發(fā)的,希望對(duì)您有所幫助。

[免責(zé)聲明]

文章標(biāo)題: oceanbase是什么?oceanbase基于什么開發(fā)的?

文章內(nèi)容為網(wǎng)站編輯整理發(fā)布,僅供學(xué)習(xí)與參考,不代表本網(wǎng)站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)溝通。發(fā)送郵件至36dianping@36kr.com,我們會(huì)在3個(gè)工作日內(nèi)處理。

相關(guān)文章
最新文章
查看更多
關(guān)注 36氪企服點(diǎn)評(píng) 公眾號(hào)
打開微信掃一掃
為您推送企服點(diǎn)評(píng)最新內(nèi)容
消息通知
咨詢?nèi)腭v
商務(wù)合作