SMProxy
v1.3.1
中文| English
/$$$$$$ /$$ /$$ /$$$$$$$
/$$__ $$| $$$ /$$$| $$__ $$
| $$ __/| $$$$ /$$$$| $$ $$ /$$$$$$ /$$$$$$ /$$ /$$ /$$ /$$
| $$$$$$ | $$ $$/$$ $$| $$$$$$$//$$__ $$ /$$__ $$| $$ /$$/| $$ | $$
____ $$| $$ $$$| $$| $$____/| $$ __/| $$ $$ $$$$/ | $$ | $$
/$$ $$| $$ $ | $$| $$ | $$ | $$ | $$ >$$ $$ | $$ | $$
| $$$$$$/| $$ / | $$| $$ | $$ | $$$$$$/ /$$/ $$| $$$$$$$
______/ |__/ |__/|__/ |__/ ______/ |__/ __/ ____ $$
/$$ | $$
| $$$$$$/
______/
一個基於MySQL 協議,Swoole 開發的MySQL資料庫連接池。
將資料庫連接作為物件儲存在記憶體中,當使用者需要存取資料庫時,首次會建立連接,後面並非建立一個新的連接,而是從連接池中取出一個已建立的空閒連接物件。 使用完畢後,使用者並非將連線關閉,而是將連線放回連線池中,以供下一個請求存取使用。而連結的建立、斷開都由連接池本身來管理。
同時,也可以透過設定連線池的參數來控制連線池中的初始連線數、連線的上下限數以及每個連線的最大使用次數、最大空閒時間等等。 也可以透過其自身的管理機制來監視資料庫連線的數量、使用情況等。超出最大連線數會採用協程掛起,等到有連線關閉再恢復協程繼續操作。
PHP 沒有連接池,所以高並發時資料庫會出現連接打滿的情況,Mycat 等資料庫中間件會出現部分SQL 無法使用,例如不支援批量添加等,而且過於臃腫。 所以就自己編寫了這個僅支援連接池和讀寫分離的輕量級中間件,使用Swoole 協程調度HandshakeV10 協議轉送使程式更加穩定,不用像Mycat 一樣解析所有SQL 包體,增加複雜度。
因為有你們,SMProxy 才能走到現在。
Thank you to all our backers! [Become a backer]
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]