自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊數(shù)據(jù)庫組件功能設(shè)計點

數(shù)據(jù)庫 其他數(shù)據(jù)庫
數(shù)據(jù)庫中間件承擔應(yīng)用與數(shù)據(jù)庫之間的粘合與潤滑,數(shù)據(jù)庫中間件設(shè)計的合理應(yīng)用跑起來就絲滑,否則會拉胯。

引言

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

  • 分庫分表
  • 數(shù)據(jù)復(fù)制
  • 數(shù)據(jù)同步平臺
  • 全局唯一主鍵
  • 運維自動化可視化

一、分庫分表

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

1.ShardingSphere-JDBC

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

2.ShardingSphere-Proxy

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

3.ShardingSphere-Sidecar

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

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

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

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

1.單向搬運

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

https://github.com/alibaba/canal

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

2.雙/單向同步

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

https://github.com/alibaba/otter

其他類似組件:dataLink、databus

https://github.com/ucarGroup/DataLink

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

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

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

當隨著數(shù)據(jù)同步的場景越來越多,為每個不同的數(shù)據(jù)源寫一個同步插件變得復(fù)雜和不好維護,此時可以考慮搭建一個數(shù)據(jù)同步平臺。

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

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

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

Flink-CDC

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

四、全局唯一主鍵

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

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

生成全局唯一ID的方案有很多,常見的有:

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

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

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

五、運維自動化可視化

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

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


責任編輯:武曉燕 來源: 瓜農(nóng)老梁
相關(guān)推薦

2022-01-17 21:48:35

流量錄制設(shè)計點

2023-01-26 00:18:53

云原生數(shù)據(jù)庫云資源

2021-10-28 19:28:04

數(shù)據(jù)庫開發(fā)Spring

2023-01-06 08:31:53

數(shù)據(jù)庫基準測試

2024-10-12 15:29:56

2022-09-23 07:44:48

時序數(shù)據(jù)庫物聯(lián)網(wǎng)

2016-12-02 09:03:20

Apache CarbUpdateDelete

2020-11-11 08:04:34

低代碼

2017-10-12 12:13:09

設(shè)計師搜索功能搜索框

2023-06-28 09:53:41

智能駕駛

2024-05-08 08:14:18

數(shù)據(jù)庫IO備份

2023-10-11 08:09:53

事務(wù)隔離級別

2022-09-21 07:30:12

數(shù)據(jù)庫勒索病毒企業(yè)

2011-03-10 11:12:59

數(shù)據(jù)庫

2020-12-09 08:50:55

web組件開發(fā)

2011-04-15 13:28:44

數(shù)據(jù)庫設(shè)計

2011-03-10 11:17:03

數(shù)據(jù)庫設(shè)計技巧

2024-09-13 08:59:20

2019-02-12 11:45:05

Java數(shù)據(jù)庫開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號