基于Java語言編寫的輕量級分庫分表(Sharding)中間件:kratos

ygp8 9年前發布 | 46K 次閱讀 MySQL 數據庫服務器 Kratos

kratos簡介

基于Java語言編寫的輕量級分庫分表(Sharding)中間件,豐富的Sharding算法支持(2類4種分片算法),能夠方便DBA實現庫的極速擴容和降低數據遷移成本。Kratos站在巨人的肩膀上(SpringJdbc),采用與應用集成架構,放棄通用性,只為換取更好的執行性能與降低分布式環境下外圍系統的down機風險。

Kratos的使用手冊:http://gao-xianglong.iteye.com/blog/2237277
Kratos的分片模型:http://gao-xianglong.iteye.com/blog/2238901
Kratos的注意事項:http://gao-xianglong.iteye.com/blog/2239007

kratos的優點:

1、動態數據源的無縫切換;
2、master/slave一主一從讀寫分離;
3、單線程讀重試(取決于的數據庫連接池是否支持);
4、單獨且友好支持Mysql數據庫,不支持其它RDBMS庫;
5、非Proxy架構,與應用集成,應用直連數據庫,降低外圍系統依賴帶來的down機風險;
6、使用簡單,侵入型低,站在巨人的肩膀上,依賴于Spring JDBC;
7、不做真正意義上的Sql解析任務,規避Sql解析過程中由詞法解析、語法解析、語義解析等操作所帶來的性能延遲,僅用正則表達式解析 片名和Route條件,解析過程僅耗時約<=1ms;
8、分庫分表路由算法支持2類4種分片模式,庫內分片/一庫一片;
9、提供自動生成sequenceId的API支持;
10、提供自動生成配置文件的支持,降低配置出錯率;
11、目標和職責定位明確,僅專注于Sharding,不支持其它多余或雞肋功能、無需兼容通用性,因此核心代碼量少、易讀易維護

項目主頁:http://www.baiduhome.net/lib/view/home/1441376113034

 本文由用戶 ygp8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!