足球资料库数据/孙祥/nba五佳球/足球直播哪个平台好 - cctv5今日现场直播

首頁 > 知識庫 > 正文

輕量級Mysql Sharding中間件——Shark
2016-01-19 21:57:41   來源: gao_xianglong   評論:0 點擊:

Shark簡介? 前身為Kratos,輕量級Mysql分庫分表(Sharding)中間件,豐富的Sharding算法支持(2類4種分片算法),能夠方便DBA實現(xiàn)庫的水平擴容和降低數(shù)據(jù)遷移成本。Shark

\

Shark簡介?

前身為Kratos,輕量級Mysql分庫分表(Sharding)中間件,豐富的Sharding算法支持(2類4種分片算法),能夠方便DBA實現(xiàn)庫的水平擴容和降低數(shù)據(jù)遷移成本。Shark站在巨人的肩膀上(SpringJdbc、Druid),采用與應(yīng)用集成架構(gòu),放棄通用性,只為換取更好的執(zhí)行性能與降低分布式環(huán)境下外圍系統(tǒng)的宕機風(fēng)險。


Shark的優(yōu)點

  • 動態(tài)數(shù)據(jù)源的無縫切換;
  • master/slave一主一從讀寫分離;
  • Sql獨立配置,與邏輯代碼解耦;
  • 單線程讀重試(取決于的數(shù)據(jù)庫連接池是否支持);
  • 單獨且友好支持Mysql數(shù)據(jù)庫;
  • 非Proxy架構(gòu),與應(yīng)用集成,應(yīng)用直連數(shù)據(jù)庫,降低外圍系統(tǒng)依賴所帶來的宕機風(fēng)險;
  • 使用簡單,侵入性低,站在巨人的肩膀上,依賴于SpringJdbc、Druid;
  • 基于淘寶Druid的SqlParser完成Sql解析任務(wù),解析性能高效、穩(wěn)定;
  • 分庫分表路由算法支持2類4種分片模式,庫內(nèi)分片/一庫一片;
  • 提供自動生成全局唯一的sequenceId的API支持;
  • 提供自動生成配置文件的支持,降低配置出錯率;
  • 提供內(nèi)置驗證頁面,方便開發(fā)、測試以及運維對執(zhí)行后的sql進(jìn)行驗證;
  • 專注于Sharding領(lǐng)域,無需兼容通用性,因此核心代碼量少、易讀易維護(hù);

Shark的分片模型

Shark支持2類4種分片算法:
  • 庫內(nèi)分片類型:
    • 片名連續(xù)的庫內(nèi)分片算法;
    • 非片名連續(xù)的庫內(nèi)分片算法;
  • 一庫一片類型:
    • 片名連續(xù)的一庫一片算法;
    • 非片名連續(xù)的一庫一片算法;

Shark的使用注意事項

  • 不支持強一致性的分布式事務(wù),建議在業(yè)務(wù)層采用依賴MQ、異步操作等方式實現(xiàn)事物,保證事物的最終一致性;
  • 不建議、不支持多表查詢,所有多表查詢sql,務(wù)必全部打散為單條sql逐條執(zhí)行;
  • sql語句的第一個參數(shù)務(wù)必是路由條件;
  • 不支持sql語句中出現(xiàn)數(shù)據(jù)庫別名;
  • 路由條件必須是整數(shù)類型;

?

相關(guān)熱詞搜索:中間件 mysql Shark opensource 開源軟件

上一篇:ChakraCore:微軟開源Edge的JavaScript引擎
下一篇:一步一步理解 Java 企業(yè)級應(yīng)用的可擴展性

分享到: 收藏