最近的攻击让我想到的一些事情

2013-08-22 03:00:37 +08:00
 Livid
或许这些你都已经经历过了,那么你就把下面的列表当作是小朋友的学习心得吧。

1. 下一个项目,能不用 MySQL 就尽量不用,尤其不要用任何的 ORM。虽然方便,但是性能损耗太大了。

2. 所有页面的生成时间,目标应该是 10ms 以下。如果缓存设计得足够好的话,5ms 以下。目前我们的很多页面的生成时间接近甚至超过 100ms,这样的话,网站太脆弱了,会需要加入太多其他的应用层的防御措施。

3. Tornado 是一个经得住考验的框架。本身性能非常好。

4. 如果在 supervisor 中同时启动太多 Tornado process,那么在每次代码更改的时候,新代码的部署过程可能会造成短暂的 CPU 压力。

5. 根据频次计算的防攻击规则,可能会和 CDN 及某些终端加速机制(比如 Opera Mini 的代理)不兼容,除非你能够把这些根据频次计算的防攻击规则,也部署到 CDN 的边缘节点上,并且有足够灵活的 UI 和部署机制让你能够试验不同的规则。

6. 所有的防攻击规则都会造成误伤,并且可能会影响搜索引擎的收录,因为各种 bot 很容易中枪。

如果你最近的访问因为我们的某些防攻击规则受到影响,请给我邮件 livid at v2ex.com 并附上你的 IP(前三段即可)。

大力感谢 @ptcracker 在最近这段时间给予的帮助。
15300 次点击
所在节点    Python
67 条回复
ipconfiger
2013-08-22 14:52:47 +08:00
@est 对的

@phuslu 如此甚好,我把以前一个用gevent的东西换换mysql连接库就能提高性能了,tks
est
2013-08-22 14:59:07 +08:00
@ipconfiger 哈哈, 豆瓣也撸的是这个 https://github.com/esnme/ultramysql/issues/10 最后回复

ultramysql 的问题是。不兼容 db api。导致很多东西很蛋痛
ipconfiger
2013-08-22 15:04:05 +08:00
@est 妈蛋啊,幸亏我反射弧比较长
notedit
2013-08-22 15:55:51 +08:00
有些问题是你使用上的问题

比如storm本身就有问题,已经有多个人吐槽过了,甚至不支持连接池. 作者跑去搞go了.
python上用的最多的那个mysql驱动不是异步的 跟tornado配合的话 异步就没有优势了.

可以尝试下postgres
hunk
2013-08-22 23:28:44 +08:00
基础数据还是用mysql靠谱,以保存为主,前端KV数据库是没有疑问的。
fire5
2014-03-24 17:50:11 +08:00
我直接使用tornadb,裸写sql倒是犀利,但是CURD费体力,我就写了一个根据course分析表结构,自动生成curd代码的工具。 总体来说,一般场景我还是支持orm的,毕竟一堆的sql string 维护也很蛋疼的。重构下表结构,需要修改一堆sql。。。。
fire5
2014-03-24 17:52:31 +08:00
另外性能问题绝对不是MySQL本身的问题,比如淘宝95%都是mysql,分表,分库,主从,索引优化下,加上cache,一般论坛随便搞搞没啥问题的。

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

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

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

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

© 2021 V2EX