https://laravel-china.org/articles/19742
github : https://github.com/louislivi/smproxy
swoole mysql proxy
一个基于mysql协议,swoole 开发的mysql数据库连接池
原理
将数据库连接作为对象存储在内存中,当用户需要访问数据库时,首次会建立连接,后面并非建立一个新的连接,
而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,
以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。
同时,还可以通过设置连接池的参数来控制连接池中的
初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等。
也可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。
超出最大连接数会采用协程挂起 等到有连接关闭再恢复协程继续操作
特性
支持读写分离
支持数据库连接池,能够有效解决PHP带来的数据库连接瓶颈
支持SQL92标准
遵守Mysql原生协议,跨语言,跨平台的通用中间件代理。
支持多个数据库连接,多个数据库,多个用户,灵活搭配。
支持mysql事物
采用协程调度
支持 HandshakeV10 协议版本
完美兼容mysql4.1 -5.7
兼容各大框架,无缝提升性能
设计初衷
php没有连接池,所以高并发时数据库会出现连接打满的情况,
mycat等数据库中间件会出现部分sql无法使用,例如不支持批量添加等,而且过于臃肿。
所以就自己编写了这个仅支持连接池和读写分离的轻量级中间件,
使用swoole协程调度HandshakeV10协议转发使程序更加稳定不用像mycat一样解析所有sql包体,增加复杂度。
环境
swoole 2.1+
php 7.0+
安装
下载的文件直接解压即可。
运行
需要给予 bin/server 执行权限
bin/server start : 运行服务
bin/server stop : 停止服务
bin/server restart : 重启服务
bin/server status : 查询服务运行状态
bin/server reload : 平滑重启
bin/server -h : 帮助
bin/server -v : 查看当前服务版本
SMProxy连接测试
测试SMProxy与测试mysql完全一致,mysql怎么连接,SMProxy就怎么连接。
推荐先采用命令行测试:
mysql -uroot -p123456 -P3366 -h127.0.0.1
也可采用工具连接。
SMProxy,让你的数据库操作快三倍!
前往
- Software
- ↳ CodeCharge Studio
- ↳ CodeCharge
- ↳ DemoCharge
- ↳ SuperPDF
- ↳ 551einv
- ↳ E3進銷存
- 程式語言
- ↳ PHP
- ↳ CodeLobster PHP Edition
- ↳ Yii
- ↳ CodeIgniter
- ↳ Phalcon
- ↳ Symfony
- ↳ FuelPHP
- ↳ Zend Framework 2
- ↳ laravel
- ↳ WordPress
- ↳ ASP.NET/C#
- ↳ ASP/VBScript
- ↳ JSP
- ↳ Java Servlets
- ↳ ColdFusion
- ↳ Perl
- ↳ Java Script
- ↳ jQuery
- ↳ HTML + CSS
- ↳ jQuery
- ↳ nodejs
- ↳ VB6
- ↳ Git
- ↳ App Inventor 2
- ↳ bash
- ↳ C++/ VC/ OpenCV
- ↳ OpenCV
- ↳ go
- ↳ cordova
- ↳ python
- ↳ Xamarin
- ↳ Assembly
- 資料庫
- ↳ MySQL
- ↳ PostgreSQL
- ↳ ORACLE
- ↳ Access
- ↳ SQL Server
- ↳ SQLite
- ↳ MariaDB
- ↳ Mongodb
- 作業系統
- ↳ Linux
- ↳ Ubuntu
- ↳ CentOS
- ↳ Mint
- ↳ Mandriva
- ↳ Debian
- ↳ Red Hat Enterprise Linux
- ↳ Oracle Linux
- ↳ Fedora
- ↳ Kali Linux
- ↳ OpenSUSE
- ↳ Elementary OS
- ↳ Microsoft
- ↳ Server 2008 R2
- ↳ Server 2012 R2
- ↳ Server 2012
- ↳ 8
- ↳ 10
- ↳ System Center 2016
- ↳ NOVELL
- ↳ FreeBSD
- ↳ VMware
- ↳ VirtualBox
- ↳ Mac OS X
- ↳ Solaris
- ↳ iOS
- ↳ Android
- ↳ Cloud
- ↳ OpenStack
- ↳ Docker
- ↳ Proxmox VE
- ↳ CloudReady
- ↳ chrome
- 網頁伺服器
- ↳ apache
- ↳ tomcat
- ↳ nginx
- ↳ IIS
- ↳ JBoss
- ↳ weblogic
- ↳ WebHosting
- 硬體
- ↳ 硬體及週邊
- ↳ RouterOS
- ↳ LEGO NXT
- ↳ Arduino
- ↳ MSP430
- ↳ Raspberry Pi
- ↳ OpenERP
- ↳ Storage
- ↳ Server
- ↳ Brocade
- ↳ MODELS
- ↳ FortiGate
- 軟體
- ↳ sublime
- ↳ LibreNMS