1. 程式人生 > >SMProxy 1.2.9 釋出 ! 新增狀態命令監控面板功能

SMProxy 1.2.9 釋出 ! 新增狀態命令監控面板功能

Swoole MySQL Proxy

一個基於 MySQL 協議,Swoole 開發的MySQL資料庫連線池。

原理

將資料庫連線作為物件儲存在記憶體中,當用戶需要訪問資料庫時,首次會建立連線,後面並非建立一個新的連線,而是從連線池中取出一個已建立的空閒連線物件。 使用完畢後,使用者也並非將連線關閉,而是將連線放回連線池中,以供下一個請求訪問使用。而連線的建立、斷開都由連線池自身來管理。

同時,還可以通過設定連線池的引數來控制連線池中的初始連線數、連線的上下限數以及每個連線的最大使用次數、最大空閒時間等等。 也可以通過其自身的管理機制來監視資料庫連線的數量、使用情況等。超出最大連線數會採用協程掛起,等到有連線關閉再恢復協程繼續操作。

特性

  • 支援讀寫分離
  • 支援資料庫連線池,能夠有效解決 PHP 帶來的資料庫連線瓶頸
  • 支援 SQL92 標準
  • 採用協程排程
  • 支援多個數據庫連線,多個數據庫,多個使用者,靈活搭配
  • 遵守 MySQL 原生協議,跨語言,跨平臺的通用中介軟體代理
  • 支援 MySQL 事務
  • 支援 HandshakeV10 協議版本
  • 完美相容 MySQL5.5 - 8.0
  • 相容各大框架,無縫提升效能

設計初衷

PHP 沒有連線池,所以高併發時資料庫會出現連線打滿的情況,Mycat 等資料庫中介軟體會出現部分 SQL 無法使用,例如不支援批量新增等,而且過於臃腫。 所以就自己編寫了這個僅支援連線池和讀寫分離的輕量級中介軟體,使用 Swoole 協程排程 HandshakeV10 協議轉發使程式更加穩定,不用像 Mycat 一樣解析所有 SQL 包體,增加複雜度。

版本更新

  • 新增status命令監控面板功能
    • 6EFDA5B8CF7F0AD3A398EEFFB1D73B95
  • 修復日誌目錄建立失敗的問題
  • 修復PHP字串索引取值版本相容問題

開發與討論