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

140 天前
 craftx
rt
之前发了个帖子,询问现在有哪些大流量在线服务是用 python 作为主力语言。
现在问题改下,如果真的要以 python 来开发,可能面临哪些问题,如何解决?
4805 次点击
所在节点    Python
38 条回复
livenux
140 天前
python 性能是差些,对付大流量 web 使用异步框架应该足够了,况且还有使用 rust 底层 web 框架 https://github.com/sparckles/Robyn
LeeReamond
140 天前
你这个问题意义不大,
1. 大部分人和大部分公司不会选择 python 的方案,原因是 java 在国内环境下更合适,直接原因就是招人随便招都有一帮卷 B 来找你
2. springcloud 生态整合了开发中的一些重要节点,比如微服务和分布式容器化部署,服务注册与发现,管理与更新,均衡负载和智能路由,故障和容错和灾备,以及开发过程中的链路追踪等等问题。这些问题不是说 Python 不能解决,只是说生态导致语言自然分化出了不同定位,你强行要逆趋势而行就要支付对应的代价,有一些过程目前的开源工具做的不是很好,有一些过程需要你自己实现,这些过程中任意一个单拿出来都说不上很难,但一箩筐打包还是令人头疼的工作。
3. 所以你用 java 开发这叫顺势而动,用 python 开发这叫逆天而行。单说坑,python 没什么坑,使用量这么高的语言有什么坑,但是因为你逆天而行所以可以说到处都是坑。
4. 而你使用动态类型语言的优势则是开发周期短,然后如果你资金和技术够,那么另起炉灶会让你对项目有完全的掌握力度。这些优势在资本密集型项目中不具备什么价值。
5. 所以最后问题就变成,你既然都有大流量了,何须在意成本,直接花钱铺路,javaer 帮你把问题解决得服服帖帖。除非你实际上没有大流量,开发还想省钱,然后同时你是个技术专家,非常清楚自己要做什么,那你就用自己熟悉的技术栈。不过如果你是技术专家的话你还来 v2 问什么
BeiChuanAlex
140 天前
大流量,如果是我,绝对不会用 python
shinession
140 天前
Instagram, django 的框架, 当然魔改了一部分, 抗的住十亿流量, 成为独脚兽之前语言不是啥问题吧
crysislinux
140 天前
流量大语言性能差点多加服务器就好了,关键是架构要能方便的加服务器
luozic
140 天前
为啥限定是 python ?即使是那几个说的 python 大项目,也是用 python 当胶水,具体的实际中间件,性能敏感的地方还是用 c++,golang 甚至 rust 重写了的。
Hopetree
140 天前
用 Python 就别讲究性能,Python 的最大优势在于可以当脚本用,开发方便才是 Python 的优势,性能真没必要
FlyingBackscratc
140 天前
@luozic 这就比较无聊了,用什么开发业务就是用什么语言,比如你牙齿是每天磨损最多的地方,然后你换了钢牙,能说你这人是钢做的?
akira
140 天前
豆瓣好像是吧, 还有那个问答社区,v2 之前也是
craftx
140 天前
@akira V2EX 现在是什么语言?
craftx
140 天前
@livenux 有没有 c 底层的 python web 组件/框架?
luozic
140 天前
@FlyingBackscratc 我的意思是,仅仅 python 搞高性能,短期内是扯淡呢。 用 python 就得多种语言一起用。python 做快速原型,业务代码,遇到性能问题可以快速切换语言再搓一遍
codegenerator
140 天前
你这个问题有歧义
如果你的需求是 web 后端 api ,我可以肯定的说没有任何问题
因为 Instagram 和早中期字节使用完全没有问题,字节是这 2 年才换的 go 但是历史还是遗留不少 python
但是你说你的需求是音视频实时编解码之类的,那 python 肯定不合适
python 最大的问题不是性能,而是弱类型,其次是如果做业务的话生态显然不如 java
lithiumii
140 天前
国外例子有 Instagram ,但不能说没有坑:被收购了之后为了性能 Facebook 就魔改出了 Cinder 。
RockShake
140 天前
豆瓣之前是,已经转 GO 了,你去查下他们转 GO 的原因不就知道了么
louisxxx
140 天前
你的业务大到 python 无法支撑的时候还会缺钱重构?就算没人,有钱你也可以直接加机器行了
cdlnls
140 天前
每个人对大流量的定义和理解都是不一样的,有可能你以为的大流量,在别人看来就是洒洒水,或者反过来。。。没有参照物的话,这种回答没啥用。
suyuyu
140 天前
你说的大流量是多大?
keakon
140 天前
用 Python 做过单机几千 qps 的项目,也用 Go 做过多机高可用一天几个请求的项目。说实话绝大部分 web 服务的瓶颈不在语言。
ben1024
140 天前
一般流量压力不再语言,在数据库;
另 Python 是动态强类型

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

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

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

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

© 2021 V2EX