新聞中心
引言
數據庫中間件承擔應用與數據庫之間的粘合與潤滑,數據庫中間件設計的合理應用跑起來就絲滑,否則會拉胯。本文就常見數據庫組件相關的功能設計點做個歸納整理:

創(chuàng)新互聯(lián)建站是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網站建設公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務,在本地打下了良好的口碑,在過去的十年時間我們累計服務了上千家以及全國政企客戶,如邊坡防護網等企業(yè)單位,完善的項目管理流程,嚴格把控項目進度與質量監(jiān)控加上過硬的技術實力獲得客戶的一致贊揚。
- 分庫分表
- 數據復制
- 數據同步平臺
- 全局唯一主鍵
- 運維自動化可視化
一、分庫分表
分庫分表組件主要為分擔數據庫壓力,通過多庫多表承接請求。盡管擁有眾多的分庫分表組件,Apache ShardingSphere作為Apache的頂級項目依舊是主流。無論直接使用還是基于其二次開發(fā)或者自研,均值得研究。
1.ShardingSphere-JDBC
客戶端直連數據庫,分布式無中心化,主要針對java語言,數據庫連接消耗多。
2.ShardingSphere-Proxy
客戶端先連接到Proxy代理,通過代理連接數據庫,能夠跨語言,消耗數據庫的連接數少(僅代理直接連接數據庫),但是中心化風險點也主要在此。
3.ShardingSphere-Sidecar
網格化代理還在規(guī)劃中,從當前螞蟻對外提供的service mesh商業(yè)方案中,還沒DB的mesh,下沉能力的同時,也帶來了數據面和控制面板的復雜性。
https://github.com/apache/shardingsphere.git
備注:當前還是客戶端直連數據庫為主流,中心化的Proxy依然有公司采納然占比依舊很少,至于Sidecar模式的大規(guī)模使用還在未來。
二、數據復制
1.單向搬運
將Mysql數據同步到消息隊列或者其他數據存儲源,常用開源組件為canal。
https://github.com/alibaba/canal

2.雙/單向同步
在異地多活場景中數據庫的雙向同步、跨機房災備的單向同步等場景,常用組件otter。
https://github.com/alibaba/otter
其他類似組件:dataLink、databus
https://github.com/ucarGroup/DataLink
https://github.com/linkedin/databus?
備注:在單/雙向同步場景中通常伴隨著DDL的同步。
三、數據同步平臺
當隨著數據同步的場景越來越多,為每個不同的數據源寫一個同步插件變得復雜和不好維護,此時可以考慮搭建一個數據同步平臺。
- 通過ReaderPugin和WriterPlugin插件化
- 插件化對接入的數據源和目標數據源只需要編寫插件即可
- 數據轉換為提高吞吐性能可以引入Flink批處理框架
備注:數據同步平臺社區(qū)也有開源DataX可供參考。
https://github.com/alibaba/DataX/blob/master/introduction.md
Flink-CDC
https://github.com/ververica/flink-cdc-connectors
四、全局唯一主鍵
在分布式數據庫中最好使用分布式全局唯一ID作為數據記錄的唯一標識,原因也很簡單,主要是避免主鍵沖突。
- 跨庫數據遷移避免主鍵沖突
- 雙活數據庫雙向同步時避免主鍵沖突
- 唯一鍵設計合理對排序和識別均有良好的輔助作用
生成全局唯一ID的方案有很多,常見的有:
- UUID
- 數據庫發(fā)放不同的ID區(qū)段
- 雪花算法(snowflake)生成唯一標識
雪花算法: 由Twitter創(chuàng)建生成全局唯一ID算法,一個Snowflake ID組成共64位構成如下,如果不需要這么多位可以改造縮短一些長度。
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相關需要手動的創(chuàng)建的自動化、可視化。
- 數據庫申請與創(chuàng)建
- DDL變更自動化
- SQL執(zhí)行結果導出
- 同步任務申請自動化
- 任務運行監(jiān)控可視化
本文題目:聊聊數據庫組件功能設計點
當前URL:http://www.fisionsoft.com.cn/article/dhspccs.html


咨詢
建站咨詢
