2016-07-24 142 views
1

我有一個Django應用程序有一個非常標準的服務器堆棧Django的:池MySQL數據庫連接

  • DB後端:MySQL的
  • WSGI服務器:Gunicorn
  • 異步工人階級:GEVENT

我想讓Django集中MySQL連接,而不是在每個請求上創建連接。

從1.6開始,Django已經引入了persistent connections,但有issues與異步工作者。

因此,需要不同的MySQL後端或應用程序級別的連接池。我讀過其中的幾個。其中一些是非常古老的文章。以下是一些:

Django的MySQL的後端

  1. django-mysqlpool

應用程序級別連接池

  1. with SQL Alchemy
  2. another with SQL Alchemy

一些補丁也可

  1. Django Patch

一些其他方法

  1. MySQL DB Connector

我真的很困惑,其中哪種方法是集中連接的最佳方式?任何幫助,高度讚賞。

+0

[爲什麼不django支持連接池?](http://stackoverflow.com/questions/4546059/why-doesnt-django-support-connection-pool) – bummi

回答

0

您的需求

要集中MySQL連接,而不是 每個請求創建連接。

我建議

    在分貝水平

  • 表明您的應用程序是IO密集型,所以建議 是使用mysql連接池。
    可以是u可以使用thirdpart MySQL的池

  • 在應用級
  • 在應用級沒有用連接池。但大多使用緩存 ,可能是redis緩存等,這可以減去連接數量。

  • 在網絡服務器級別
  • 在服務器所謂 WSGI服務器

    。它是ligweightweight所以不是 pooling的工具,你可以反覆使用隊列來增強連接 重用。或基地Gevent來反映event_queue

    希望這可能會給你一些幫助。