使用gevent为django添加mysql连接池
django-mysql-geventpool-27的Python项目详细描述
使用gevent的django<;2.0的mysql连接池后端仅支持python 2.7 它通过gevent与gunicorn异步工作者一起工作。 它实现了一个loadbalking简单算法。
叉子来自:https://github.com/shunsukeaihara/django-mysql-geventpool
此实现基于django db geventpool(https://github.com/jneight/django-db-geventpool)。
安装
pip install django-mysql-geventpool-27
设置
将“django_mysql_geventpool_27”模块添加到已安装的应用程序中,如下所示:
INSTALLED_APPS=('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','django_mysql_geventpool-27',# ...other installed applications...
将Max的CONS添加到选项中,以允许数据库允许的最大连接数(默认值为4)
DATABASES={'default':{'ENGINE':'django_mysql_geventpool_27.backends.mysql','NAME':'dbname','USER':'dbuser','PASSWORD':'dbpassword','HOST':'dbhost','PORT':'dbport','OPTIONS':{'MAX_CONNS':20}}}
负载平衡galera multi-master
对于每个连接,对数据库设置的主机键进行随机选择。 为了便于puppet/salt/ansible等orchetter进行设置,可以使用这种设置:
注意
所有服务器必须在同一个TCP端口上侦听。
DATABASES={'default':{'ENGINE':'django_mysql_geventpool_27.backends.mysql','NAME':'dbname','USER':'dbuser','PASSWORD':'dbpassword','HOST':'server1,server2,serve3','PORT':'dbport','OPTIONS':{'MAX_CONNS':20}}}