天天看點

kingshard —— Go 開發的 MySQL Proxy 項目

kingshard簡介

kingshard是一個由go開發高性能mysql proxy項目,kingshard在滿足基本的讀寫分離的功能上,緻力于簡化mysql分庫分表操作;能夠讓dba通過kingshard輕松平滑地實作mysql資料庫擴容。 kingshard的性能是直連mysql性能的80%以上。

主要功能:

基礎功能

支援sql讀寫分離。

支援透明的mysql連接配接池,不必每次建立連接配接。

支援平滑上線db或下線db,前端應用無感覺。

支援多個slave,slave之間通過權值進行負載均衡。

支援強制讀主庫。

支援主流語言(java,php,python,c/c++,go)sdk的mysql的prepare特性。

支援到後端db的最大連接配接數限制。

支援sql日志及慢日志輸出。

支援sql黑名單機制。

支援用戶端ip通路白名單機制,隻有白名單中的ip才能通路kingshard。

支援字元集設定。

支援last_insert_id功能。

支援動态修改kingshard部配置設定置項(具體參考管理端指令)。

2 . sharding功能

支援按整數的hash和range分表方式。

支援按年、月、日次元的時間分表方式。

支援跨節點分表,子表可以分布在不同的節點。

支援跨節點的count,sum,max和min等聚合函數。

支援單個分表的join操作,即支援分表和另一張不分表的join操作。

支援跨節點的order by,group by,limit等操作。

支援将sql發送到特定的節點執行。

支援在單個節點上執行事務,不支援跨多節點的分布式事務。

支援非事務方式更新(insert,delete,update,replace)多個node上的子表。

kinshard文檔

kingshard安裝和使用

[1.安裝kingshard]

[2.如何利用一個資料庫中間件擴充mysql叢集——kingshard使用指南]

[3.kingshard sharding介紹]

[4.kingshard按時間分表功能介紹]

[5.kingshard 快速入門]

[6.管理端指令介紹]

[7.kingshard sql黑名單功能介紹]

[8.kingshard的faq]

kingshard架構與設計

[1.kingshard架構設計和功能實作]

[2.kingshard性能優化之網絡篇]

[3.kingshard性能測試報告]

回報

kingshard開源以來,經過不斷地疊代開發,功能較為完善,穩定性有較大提升。目前已有上十家公司在生産環境使用kingshard作為mysql代理。