基于Java語言編寫的輕量級分庫分表(Sharding)中間件: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,不支持其它多余或雞肋功能、無需兼容通用性,因此核心代碼量少、易讀易維護
本文由用戶 ygp8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!