惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security Archives - TechRepublic
C
Cyber Attacks, Cyber Crime and Cyber Security
P
Proofpoint News Feed
Cisco Talos Blog
Cisco Talos Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
CERT Recently Published Vulnerability Notes
S
Secure Thoughts
H
Hacker News: Front Page
I
Intezer
Cyberwarzone
Cyberwarzone
T
Tor Project blog
The Last Watchdog
The Last Watchdog
Google DeepMind News
Google DeepMind News
T
Threatpost
T
Tenable Blog
NISL@THU
NISL@THU
AWS News Blog
AWS News Blog
阮一峰的网络日志
阮一峰的网络日志
T
Troy Hunt's Blog
E
Exploit-DB.com RSS Feed
V
Visual Studio Blog
W
WeLiveSecurity
腾讯CDC
The GitHub Blog
The GitHub Blog
T
The Exploit Database - CXSecurity.com
Engineering at Meta
Engineering at Meta
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX - 技术
A
Arctic Wolf
N
Netflix TechBlog - Medium
S
Securelist
WordPress大学
WordPress大学
Schneier on Security
Schneier on Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Vercel News
Vercel News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
AI
AI
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
B
Blog
Apple Machine Learning Research
Apple Machine Learning Research
Help Net Security
Help Net Security
Google Online Security Blog
Google Online Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
G
Google Developers Blog
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cloudbric
Cloudbric
P
Palo Alto Networks Blog

Tornado

docker 多进程部署 tornado - V2EX Tornado 如何拿到传输的文件流 - V2EX Tornado 的异步 怎么写的 - V2EX tornado 下 ckeditor 图片上传问题 - V2EX Tornado 异步怎么写的? - V2EX tornado 怎么能确保端口挂了 服务也不会停止? - V2EX Tornado 路由有什么好方法,一个一个写太麻烦了,有没有根据 url 和注解匹配的方法呢 - V2EX Tornado V4.5 release pypy 拿到赞助之后出了支持 Python3.5 的版本 - V2EX 请教 tornado 文件上传问题 tornado 做后台服务,如果前端没有用 cookie. - V2EX tornado 优秀项目推荐 问一个 tornado 解决阻塞的方案问题? - V2EX tornaqiniu(基于 tornado 的异步七牛 sdk) tornado 并行异步,如何保证在只有部分请求成功后,结果依旧可用。 - V2EX nginx 反向代理 tornado,如何 location 首页u rl? - V2EX 问一个关于 tornado 异常处理的新手问题 - V2EX tornado 的 coroutine 能和自定义的装饰器一起使用吗?? - V2EX Tornado 并发数很低,正常么? - V2EX 阅读 Tornado 源码过程中的一个疑惑,求解答 - V2EX gtornado - tornado 中 pymysql, pymemcache, storm orm 支持库 - V2EX Tornado 如何组织中大型项目,你们都是怎么样做的? - V2EX tornado 跑不通,小白求帮忙 - V2EX Tornado 4.3 发布 - V2EX 关于 tornado 阻塞的问题 tornado 的 mysql 异步驱动性能测试 pypy 之 tornado tornado 多个 url RequestHandler 类的 get_current_user() 方法覆写无效 tornado 动态添加 url 的问题 tornado 怎么利用'next'参数进行页面跳转 finish() called twice 阿里云 ECS 1CPU 1G 1Mbs 跑 tornado 开多少进程合适? tornado.locale.format_date()的日期汉化问题 Tornado 分页问题求解! Tornado 开发中出错调试如何像 PHP 一样? 新手完全不懂 tornado.concurrent.Future 有多少人 有付费学习 Tornado 的意愿,这是一个学习网站。 请问下 tornado 在 ios app 后台方面有成熟的实现吗? 新手求教关于 Tornado + SQLite 的两个问题 Tornado 4.1 关于优雅地部署 Tornado 新代码的一种方式 Tornado Template 如何获得 JavaScript 中的 var 变量? 学习 "Introduction to tornado" 提问 用 Tornado + Mongodb 开发要注意什么? 用 Tornado 做的网站,大家在写测试的时候,一般都是怎么做的呢? 分享本人基于 tornado 开发的应用层框架 Nginx 多端口运行 Tornado 如何获取当前端口 Tornado 框架如何写 MVC 模式?
Tornado 官方怎么不好好维护一个 sql 的异步数据库驱动? - V2EX
Gem · 2015-11-05 · via Tornado

Gem

 

Gem · 2015 年 11 月 5 日 · 8574 次点击

这是一个创建于 3874 天前的主题,其中的信息可能已经有所发展或是发生改变。

虽然这样显得 Tornado 更加纯粹了,可是在用户实际使用起来,还是有很多不便,社区里面也没有比较高 star 的实现。

janxin

1

janxin      2015 年 11 月 5 日

Tornado 官方没维护其他的库吧,从维护上我看也就作者一个人主要维护而已。

其实现在我们也遇到了异步驱动的问题,除了 mongodb 官方维护的 motor 的库意外,其他的大概也就能数得上 PyMySQL 官方维护的 Tornado-PyMySQL 了。其他的偶尔都会有坑....

ORM 的支持更加无力...我都打算自己搞了

Gem

2

Gem      2015 年 11 月 5 日

ORM 更不用想了。

janxin

4

janxin      2015 年 11 月 5 日

@Gem 我已经在想 Tornado 纯做 Web 框架,用 Gevent 加持上同步库了 2333

lovedboy

5

lovedboy      2015 年 11 月 5 日

@janxin 我就是这样的。哈哈。 gevent+tornado+pymongo+pymysql

alex8224

7

alex8224      2015 年 11 月 6 日

好吧,最近我在用 storm, 也在用 pymysql,准备加上 storm 的异步支持的,但是思考后决得太难看了。没动手。
还是觉得 gevent 自然一点。

janxin

8

janxin      2015 年 11 月 6 日 via iPhone

@alex8224 yield from 方式觉得还不如干脆 yield 更好,所以我很期待 3.5+推广开,这样就很好了,而且 gevent 也可以支持关键字

est

9

est      2015 年 11 月 6 日

我记得好像是 @ipconfiger 同志说过, tornado 认为,如果你数据库卡比得都需要异步了,那么怎么异步都没用的。因为数据库其实不怎么能抗并发和耗时的处理。。比如 MVCC 把一行锁等 commit ,你另外一个异步来修改这行,照样需要 locking 等待的。

ipconfiger

11

ipconfiger      2015 年 11 月 6 日

@est 这个观点是 tornado 作者的,我从不解到赞同到打算突破到继续赞成,经过了多年的心理斗争和努力,事实上,异步并不是一切的终极答案,大多数时候我们在未经思考的时候脱口而出:让我们异步起来吧。其实只是为了图方便而已。

ipconfiger

12

ipconfiger      2015 年 11 月 6 日   ❤️ 1

另外 gevent 也不是正确的解法,不管你怎么纤程,一个数据库的 connection 上是只能跑一个 statement 的,那么当一个查询 block 的时候,你也只能启动一个新的 connection 去执行新的 statement ,然后如果一条慢 SQL 要跑 1 秒,那么在这个时候狗屎运爆发了有 1000 个并发请求都在执行这条 SQL ,那么结果就是启动了 1000 个数据库的 connection ,超过 MySQL 的 max_connection 设置数的话,就会开始拒绝连接了。

感兴趣的话去网上随便搜索一点 MySQL 的配置优化方案,有没有数据库开挂上高并发的优化案例。

ryanking8215

14

ryanking8215      2015 年 11 月 6 日

@est 但是至少 tornado 还能快速响应其他请求(非数据库相关请求),如果业务上没需求的话,这个也然并卵

sujin190

15

sujin190      2015 年 11 月 6 日

我觉得 Tornado 使用异步操作数据库,并不在于 1000 个并发过来,就真的 1000 个查询到数据库,同时查询肯定有上限的,使用异步只是为了不让 tornado 进程处于 iowait 状态,可以减少进程的切换,同时也可以更快的处理非数据库相关的请求,一般对于 web 查询多余读写的情景来说,数据库查询确实会很快,也正是如此数据库到 web 服务器的网络传输时间消耗也占到了整个查询时间的很大比重了吧

fordoo

17

fordoo      2015 年 11 月 6 日

好多人从 python 转向 golang ,可能就是这个原因吧:同步 gevent 要踩坑,异步下库跟不上。

aiqier

18

aiqier      2015 年 11 月 6 日

我的理解是:其实在怎么异步,到数据库那一层都是阻塞的,意义不大。你的服务是异步的够了,

jjx

20

jjx      2015 年 11 月 6 日   ❤️ 1

异步就老老实实的用 消息队列+多 worker 模式, 在 worker 中, 同步也行, 用 gevent 也行, 像 tornado 的典型方案应该是这样的

多进程 tornado + pyzmq + proxy +多 worker

这是在生产环境中用的, 要保证 tornado 中要么用异步客户端,要不直接转发到外部进程或消息队列

当然, 在一台服务器上 worker,不行, tornado 接入再多的连接又有什么用, 这种思路本身就是分布式的,要求你的数据库也能分布, 传统的 db 难度得确高了些

sujin190

21

sujin190      2015 年 11 月 6 日

测试了一下, tornado 使用异步数据库操作, sys 使用率可以低 50%,配合 pypy ,在 MySQL 基本没什么数据,读的情况下可以到 11000 每秒处理数,同步数据库操作 7000 左右, MySQL 毫无压力, cpu 使用率不高于 18%,并发的话, ab 同步 400 左右正常, 500 跪了,异步 1000 毫无压力

est

22

est      2015 年 11 月 6 日

@sujin190 可以统计下 python 项目里的 view 。我觉得不调用 db 的 view 不存在。。。。好多 session 都是存 mysql 的。

ipconfiger

23

ipconfiger      2015 年 11 月 6 日

@sujin190 你再多点请求的话,就会发现数据库垮丝了,能支撑的 QPS 极限是一致的,当然在某些区间异步确实能带来肉眼能看见的提升