SMProxy 1.2.9 釋出 ! 新增狀態命令監控面板功能
阿新 • • 發佈:2019-07-27
Swoole MySQL Proxy
一個基於 MySQL 協議,Swoole 開發的MySQL資料庫連線池。
原理
將資料庫連線作為物件儲存在記憶體中,當用戶需要訪問資料庫時,首次會建立連線,後面並非建立一個新的連線,而是從連線池中取出一個已建立的空閒連線物件。 使用完畢後,使用者也並非將連線關閉,而是將連線放回連線池中,以供下一個請求訪問使用。而連線的建立、斷開都由連線池自身來管理。
同時,還可以通過設定連線池的引數來控制連線池中的初始連線數、連線的上下限數以及每個連線的最大使用次數、最大空閒時間等等。 也可以通過其自身的管理機制來監視資料庫連線的數量、使用情況等。超出最大連線數會採用協程掛起,等到有連線關閉再恢復協程繼續操作。
特性
- 支援讀寫分離
- 支援資料庫連線池,能夠有效解決 PHP 帶來的資料庫連線瓶頸
- 支援 SQL92 標準
- 採用協程排程
- 支援多個數據庫連線,多個數據庫,多個使用者,靈活搭配
- 遵守 MySQL 原生協議,跨語言,跨平臺的通用中介軟體代理
- 支援 MySQL 事務
- 支援 HandshakeV10 協議版本
- 完美相容 MySQL5.5 - 8.0
- 相容各大框架,無縫提升效能
設計初衷
PHP 沒有連線池,所以高併發時資料庫會出現連線打滿的情況,Mycat 等資料庫中介軟體會出現部分 SQL 無法使用,例如不支援批量新增等,而且過於臃腫。 所以就自己編寫了這個僅支援連線池和讀寫分離的輕量級中介軟體,使用 Swoole 協程排程 HandshakeV10 協議轉發使程式更加穩定,不用像 Mycat 一樣解析所有 SQL 包體,增加複雜度。
版本更新
- 新增
status
命令監控面板功能 - 修復日誌目錄建立失敗的問題
- 修復PHP字串索引取值版本相容問題
開發與討論
- 文件:https://smproxy.louislivi.com
- QQ群:722124111
- 歡迎各類 Issue 和 P