日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
聊聊數(shù)據(jù)庫(kù)組件功能設(shè)計(jì)點(diǎn)

引言

數(shù)據(jù)庫(kù)中間件承擔(dān)應(yīng)用與數(shù)據(jù)庫(kù)之間的粘合與潤(rùn)滑,數(shù)據(jù)庫(kù)中間件設(shè)計(jì)的合理應(yīng)用跑起來(lái)就絲滑,否則會(huì)拉胯。本文就常見(jiàn)數(shù)據(jù)庫(kù)組件相關(guān)的功能設(shè)計(jì)點(diǎn)做個(gè)歸納整理:

創(chuàng)新互聯(lián)建站是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶(hù)提供滿(mǎn)意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的十年時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶(hù),如邊坡防護(hù)網(wǎng)等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶(hù)的一致贊揚(yáng)。

  • 分庫(kù)分表
  • 數(shù)據(jù)復(fù)制
  • 數(shù)據(jù)同步平臺(tái)
  • 全局唯一主鍵
  • 運(yùn)維自動(dòng)化可視化

一、分庫(kù)分表

分庫(kù)分表組件主要為分擔(dān)數(shù)據(jù)庫(kù)壓力,通過(guò)多庫(kù)多表承接請(qǐng)求。盡管擁有眾多的分庫(kù)分表組件,Apache ShardingSphere作為Apache的頂級(jí)項(xiàng)目依舊是主流。無(wú)論直接使用還是基于其二次開(kāi)發(fā)或者自研,均值得研究。

1.ShardingSphere-JDBC

客戶(hù)端直連數(shù)據(jù)庫(kù),分布式無(wú)中心化,主要針對(duì)java語(yǔ)言,數(shù)據(jù)庫(kù)連接消耗多。

2.ShardingSphere-Proxy

客戶(hù)端先連接到Proxy代理,通過(guò)代理連接數(shù)據(jù)庫(kù),能夠跨語(yǔ)言,消耗數(shù)據(jù)庫(kù)的連接數(shù)少(僅代理直接連接數(shù)據(jù)庫(kù)),但是中心化風(fēng)險(xiǎn)點(diǎn)也主要在此。

3.ShardingSphere-Sidecar

網(wǎng)格化代理還在規(guī)劃中,從當(dāng)前螞蟻對(duì)外提供的service mesh商業(yè)方案中,還沒(méi)DB的mesh,下沉能力的同時(shí),也帶來(lái)了數(shù)據(jù)面和控制面板的復(fù)雜性。

https://github.com/apache/shardingsphere.git

備注:當(dāng)前還是客戶(hù)端直連數(shù)據(jù)庫(kù)為主流,中心化的Proxy依然有公司采納然占比依舊很少,至于Sidecar模式的大規(guī)模使用還在未來(lái)。

二、數(shù)據(jù)復(fù)制

1.單向搬運(yùn)

將Mysql數(shù)據(jù)同步到消息隊(duì)列或者其他數(shù)據(jù)存儲(chǔ)源,常用開(kāi)源組件為canal。

https://github.com/alibaba/canal

![](https://gitee.com/laoliangcode/md-picture/raw/master/img/mysql binlog 解析.png)

2.雙/單向同步

在異地多活場(chǎng)景中數(shù)據(jù)庫(kù)的雙向同步、跨機(jī)房災(zāi)備的單向同步等場(chǎng)景,常用組件otter。

https://github.com/alibaba/otter

其他類(lèi)似組件:dataLink、databus

https://github.com/ucarGroup/DataLink

https://github.com/linkedin/databus?

備注:在單/雙向同步場(chǎng)景中通常伴隨著DDL的同步。

三、數(shù)據(jù)同步平臺(tái)

當(dāng)隨著數(shù)據(jù)同步的場(chǎng)景越來(lái)越多,為每個(gè)不同的數(shù)據(jù)源寫(xiě)一個(gè)同步插件變得復(fù)雜和不好維護(hù),此時(shí)可以考慮搭建一個(gè)數(shù)據(jù)同步平臺(tái)。

  • 通過(guò)ReaderPugin和WriterPlugin插件化
  • 插件化對(duì)接入的數(shù)據(jù)源和目標(biāo)數(shù)據(jù)源只需要編寫(xiě)插件即可
  • 數(shù)據(jù)轉(zhuǎn)換為提高吞吐性能可以引入Flink批處理框架

備注:數(shù)據(jù)同步平臺(tái)社區(qū)也有開(kāi)源DataX可供參考。

https://github.com/alibaba/DataX/blob/master/introduction.md

Flink-CDC

https://github.com/ververica/flink-cdc-connectors

四、全局唯一主鍵

在分布式數(shù)據(jù)庫(kù)中最好使用分布式全局唯一ID作為數(shù)據(jù)記錄的唯一標(biāo)識(shí),原因也很簡(jiǎn)單,主要是避免主鍵沖突。

  • 跨庫(kù)數(shù)據(jù)遷移避免主鍵沖突
  • 雙活數(shù)據(jù)庫(kù)雙向同步時(shí)避免主鍵沖突
  • 唯一鍵設(shè)計(jì)合理對(duì)排序和識(shí)別均有良好的輔助作用

生成全局唯一ID的方案有很多,常見(jiàn)的有:

  • UUID
  • 數(shù)據(jù)庫(kù)發(fā)放不同的ID區(qū)段
  • 雪花算法(snowflake)生成唯一標(biāo)識(shí)

雪花算法: 由Twitter創(chuàng)建生成全局唯一ID算法,一個(gè)Snowflake ID組成共64位構(gòu)成如下,如果不需要這么多位可以改造縮短一些長(zhǎng)度。

Twitter Scala 版本:

https://github.com/twitter-archive/snowflake/tree/scala_28https://github.com/twitter-archive/snowflake/releases/tag/snowflake-2010

雪花算法java版本參考:

https://github.com/beyondfengyu/SnowFlake/blob/master/SnowFlake.java

五、運(yùn)維自動(dòng)化可視化

將常用的一些與DB相關(guān)需要手動(dòng)的創(chuàng)建的自動(dòng)化、可視化。

  • 數(shù)據(jù)庫(kù)申請(qǐng)與創(chuàng)建
  • DDL變更自動(dòng)化
  • SQL執(zhí)行結(jié)果導(dǎo)出
  • 同步任務(wù)申請(qǐng)自動(dòng)化
  • 任務(wù)運(yùn)行監(jiān)控可視化

當(dāng)前題目:聊聊數(shù)據(jù)庫(kù)組件功能設(shè)計(jì)點(diǎn)
網(wǎng)頁(yè)網(wǎng)址:http://www.5511xx.com/article/dhspccs.html