求基于 Python 开发大流量在线服务的经验教训

197 天前
 craftx
rt
之前发了个帖子,询问现在有哪些大流量在线服务是用 python 作为主力语言。
现在问题改下,如果真的要以 python 来开发,可能面临哪些问题,如何解决?
5338 次点击
所在节点    Python
38 条回复
pyKane
196 天前
楼上说的非常到点子上。
WEB 程序,性能瓶颈真的不在语言上了,WEB 服务多也算是 IO 密集型的。
很多时候要在 IO 瓶颈上找问题。
做过一个在日在线七八十万的项目,纯 Python 全部用 asyncio 异步。性能上完全没什问题。机器配制 两台 4C8G 组负载. 一台也能顶得住,但两台可靠性更好.
GeekGao
196 天前
绝大部分商业项目都等不到谈性能的那天(例如 YouTube 、Dropbox 、Quora 、Instagram 等 Python Web 第一梯队)
当然,如果团队人水平菜鸡(例如连 JIT 、GC 的概念都搞不明白的,也不想思考的) 建议还是无脑用 Golang 、Java 。
james2013
196 天前
在 web 开发方面,python 远比不上 java
1.java 生态更好,各种库全,缓存,日志,数据库操作等
2.java 开发速度更快,我用 python 框架 flask 写过一个 web 应用,增删查改写的恶心,更别说复杂 sql
3.python 是动态语言,代码写错了也能正常跑起来。多人开发同一个项目时,有同事漏提交代码,或者合并代码冲突覆盖,我用 java 会提示编译报错,跑不起来
4.python 写法一旦不规范,过段时间我都看不懂自己写的是什么了
chenqh
196 天前
@keakon 你这也太厉害了,用 py 做几 K QPS 。。
FlyingBackscratc
196 天前
@james2013 你菜而已。。。
niubee1
196 天前
大部分的应用瓶颈不是在开发应用的语言,而是 SQL......
coolair
196 天前
没有什么经验,自己真的太菜了,做过那么多项目,并发上千的都很少见。
而且,遇到瓶颈,基本都是大力出奇迹,能硬件解决的绝不动软件,基本上在代码没有 BUG 的情况下,没人会去优化代码。
这年头,优化代码体现不了工作能力,写一个从硬件到基础软件的升级改造方案,才是领导眼中的价值体现。
qiyilai
196 天前
和语言没啥太大关系,生态和开发人员的数量和薪资才是关键
dayeye2006199
196 天前
大部分 web 都是 IO bound ,堆机器可解。机器比人便宜
chentt
196 天前
堆机器 硬件比人工便宜多了
zagfai
196 天前
都需要架构设计,没啥问题,78 年前我在前司做的几亿用户的 app ,日活千万,后端也就全 Python ,后来用 go 改写了部分接口,机器省了 70%。
kkbblzq
196 天前
经验教训就是不要用 python 写,手动狗头,开个玩笑;虽然顶是顶得住,但是正经的说,python 的性能本来就容易受到代码质量的影响,在招聘层面上想找到比较有水平的人员也相对困难,何必呢
weeevv
196 天前
开发一时爽,重构火葬场。
如果急着出产品那就上 Python,东西堆出来再说。
----
但如果业务太复杂,而你又没有很 NB 的代码规范约束,开发测试用例,分析工具什么的,只靠人肉 DEBUG ,那么大部分的代码迟早会变成一座没人能看懂的屎山,并且任何一个因素都可能导致它在某个地方随机爆发。
于是你一定会用 Go/Java/Rust 之类重构。
---
Python 对程序员的要求太低了,如果一个人只会 Python 的话,我觉得这个人的水平还是要小心考虑一下的。
---
据说 YouTube 当年用过 Python ,但是后来放弃了.
Ref: https://www.zhihu.com/question/21017354/answer/652602653
zhuangzhuang1988
195 天前
testcgd
195 天前
db 和 redis 做好隔离就好了,不要写复杂 sql ,redis 不要 hotkey bigkey ,基本上就是加机器的事情……对比起性能,当你业务够的时候还不如想想避免团队的人乱来搞魔法
lijiachang
194 天前
如果团队技术栈是 Python 的话,用 Django 没什么问题
haiku
194 天前
OpenAI 就是 Python 后端吧,可以看下它们的事故报告

Python 我讨厌的地方主要是 AsyncIO 生态一般,写起来割裂,其他还好

纯 Web 逻辑 Go 挺不错的
so1n
194 天前
之前写过一个项目,Java 的服务是在我们的后面,结果我的服务没问题,Java 的天天扛不住挂了,所以一切还是看人

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

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

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

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

© 2021 V2EX