tornado 连续踩了两次坑,看来想驾驭好它还不容易啊

2016-03-16 22:14:03 +08:00
 sujin190
最近访问量上来了点,连续挂了两次,异步 io 的高并发反而成坑了,都是管理 mysql 连接管理的问题,想驾驭好它还不易啊
8504 次点击
所在节点    Python
52 条回复
deben
2016-03-16 22:20:23 +08:00
LZ 是否方便说的详细一点儿呢?
mailto1587
2016-03-16 22:23:40 +08:00
是 mysql 连接那块还是阻塞的?
zhuangzhuang1988
2016-03-16 22:30:17 +08:00
好惨。。。
janxin
2016-03-16 22:33:10 +08:00
mysql 请求太多,但是每个返回都慢导致的队列太长吧?
sujin190
2016-03-16 22:41:51 +08:00
@mailto1587 异步的,要是阻塞的就简单多了
sujin190
2016-03-16 22:43:24 +08:00
@janxin 是啊,看来比较懂,后来加了队列超时时间,然后要一波一波开始超时了。。
sujin190
2016-03-16 22:48:32 +08:00
@deben 不平稳的请求数,在完全异步的 tornado 环境下,会导致 mysql 队列太长,最终请求超时,客户端发起重试,但 mysql 查询请求并未取消,然后就循环超时,高并发时快速失败是个问题,后来加了队列等待超时机制,然后又一波一波开始超时了,削峰又是个问题啊,异步的 mysql 操作,又有可能造成连接池获取连接死锁问题。。
decaywood
2016-03-16 23:02:27 +08:00
数据库读写分离,或者数据库单独起个服务, tornado 进行异步请求
sujin190
2016-03-16 23:10:03 +08:00
@decaywood 读写分离并不能解决这个问题,单独起个服务的话分明又加了个更复杂的问题,否则有 nginx 我为什么要用 tornado 呢?
CrazySpiderMan
2016-03-16 23:14:08 +08:00
Tornado 是垃圾, 用 Node.js
WildCat
2016-03-16 23:15:06 +08:00
Node.js 是垃圾,用 Golang

===

233
CrazySpiderMan
2016-03-16 23:16:58 +08:00
Golang 是垃圾, 用 Erlang.
CrazySpiderMan
2016-03-16 23:17:34 +08:00
Erlang 是垃圾, 用 Common Lisp.
CrazySpiderMan
2016-03-16 23:17:52 +08:00
Common Lisp 是垃圾, 用 Rust.
CrazySpiderMan
2016-03-16 23:18:07 +08:00
Rust 是垃圾, 用 Perl.
CrazySpiderMan
2016-03-16 23:18:24 +08:00
Perl 是垃圾, 用 PHP.
CrazySpiderMan
2016-03-16 23:18:46 +08:00
PHP 是垃圾, 用 Python.
sujin190
2016-03-16 23:25:35 +08:00
@CrazySpiderMan 用过 nodejs ,不得不说,没有 yield 的 nodejs 更坑,各种异常处理,查询数据库,麻烦死了,但是 tornado 遇到的问题,估计也会遇到吧
CrazySpiderMan
2016-03-16 23:32:59 +08:00
@sujin190 我用 Node.js, 在会一点 JavaScript 和看了一点 Node.js 的文档的情况下, 就写过蛮复杂的程序(github star ~= 1200), 用 Tornado, 光是文档我都很难看懂, 设计得极其丑陋, 曾用它开发过程序, 很早就弃坑了.
motecshine
2016-03-16 23:33:01 +08:00
mark 一下以后估计也会遇到

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/264048

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX