【发布时间】:2016-05-25 11:12:31
【问题描述】:
如果我使用异步 mysql 库,例如 Tornado-MySQL(by PyMySQL)或 TorMySQL 或 Asynctorndb,它们是异步库来执行 MySQL 数据库调用,以免阻塞 IOLoop.
我想知道在给定的场景中我应该以什么方式使用它们?
场景:假设我在 Nginx 后面运行我的 Tornado Web 应用程序作为负载均衡器。整个设置在 AWS EC2 实例中。现在 Nginx、Tornado、MySQL 都运行在同一台主机上。 Tornado 实例以 Supervisord 作为进程管理程序运行。
如果没有。我的 EC2 实例的 VCPU 的数量是 x,不是。的 Nginx 工作进程是 y 和否。 Tornado Instances 是 z,那么在这种情况下,我应该如何使用我的异步 MySQL 库?
我是否应该在我的应用程序初始化中创建一个单一持久连接,它将传递给所有处理程序?还是应该使用连接池?
考虑到每种方法的效果会是什么。正在运行的 Tornado 实例数。
每种方法的优缺点是什么?
【问题讨论】:
标签: mysql nginx amazon-ec2 tornado pymysql