[转]知乎社区核心业务 Golang 化实践

2018-11-28 17:53:14 +08:00
 lihongjie0209

https://zhuanlan.zhihu.com/p/48039838

16021 次点击
所在节点    Python
112 条回复
sujin190
2018-11-29 09:40:36 +08:00
@petelin #20 几千台。。认真的么?
我怎么记得还是去年哪看到知乎分享啥架构的,说支撑每日百万异步任务啥的来着,这就几千台 redis 了
每天 100 亿请求他们有么?那么按这个估算他们平均每台服务器处理不到 100 万啊,这么弱分明是系统设计的渣吧,和语言有啥关系!
SuperMild
2018-11-29 10:09:28 +08:00
先不说 Python, 就说 Golang, 真是个好东西,首先易学,特性啊概念啊啥的非常少,黑魔法几乎没有,代码清晰易读到炸裂,运行效率还蛮高。本来懂 Python 的人,静下心来学一个星期 Go,基本就能实战了,如果加上公司里还有人指导、答疑的话,简单培训几节课,整个 Python 团队迁移到 Go 也不是不可能,剩下的只是搬砖一点点迁移代码而已。
q397064399
2018-11-29 10:15:18 +08:00
@lihongjie0209 #37 他们忘记了那些大公司跟中小型公司的技术体系是完全的两回事,像知乎 这种级别的公司,有自己的技术框架支持开发部门, 小公司开发人员 100 以内 用 golang 就是自己找不痛快, 什么轮子都得从头造, 别看大公司吹得火,这种没有广泛社区支援的语言生态系统,你自己用起来就完全是另外一回事。
hitrust
2018-11-29 10:21:05 +08:00
@pathbox 你说的靠谱
petelin
2018-11-29 10:24:05 +08:00
@sujin190 重点是 redis,redis 几千台就知乎那点业务。你想想能用来干什么
firebroo
2018-11-29 10:29:33 +08:00
@XIVN1987 不是专业开发,没搞过业务逻辑不太清楚啦
Mrun
2018-11-29 10:31:51 +08:00
@q397064399 #43 应该也还好吧,golang 大部分的轮子目前都有了
lihongjie0209
2018-11-29 10:33:04 +08:00
@q397064399 就想知道那些跟着大公司上贼船的小公司现在怎么想. Python 之前的布道师老是拿着知乎说事.
find456789
2018-11-29 10:39:13 +08:00
那么问题来了 ,知乎之前用的 python 哪个版本? 如果换成最新版的 python,性能会不会有所改善? 能改善多少?
www5070504
2018-11-29 10:43:11 +08:00
感觉本帖气氛不像是讨论 所以多说无益
www5070504
2018-11-29 10:43:52 +08:00
至少我现在用的 openstack 还是 python 写的
zts1993
2018-11-29 10:45:26 +08:00
"关于 Python 性能 和 维护性 的问题其实其他语言社区都有在讨论, 可是在一些 Python 用户选择无视. 希望这篇文章可以叫醒一些装睡的 Python 用户.
"
q397064399
2018-11-29 10:45:43 +08:00
@Mrun #47 golang 那个真的不成熟,很多东西都没有,连个像样的 ORM 都没有,新旧语言本身没有任何语法之争,在互联网这个写业务的场景,什么语法那都是一把梭,关键是新旧语言生态的基础设施问题,公司架子打好了,这样就方便来人填业务,你要天天折腾在这些框架跟基础设施上,老婆孩子不都交给老王了? 研究技术归研究技术,公司里面产品跟老板都是看你产出的,不关心你技术怎么样,只有当了一定量级别,技术才会发挥重要的业务保障作用。

有一定体量的公司,很多东西都是内部 负责基础设施的部门 会根据当前的业务场景 自己定制的工具,这些没开源的东西 你根本就看不到,你在外面的中小型公司就像 井底之蛙之样。
那些吹 Python 的 你看知乎那帖子里面,人家是把 Python 当成静态语言来写,还有各种措施来保障你的类型不出错。

百度的 golang 建设 有一整套的发布 依赖 错误定位 调用管理 等等中间件来支撑,你有吗? 你有吗?
feverzsj
2018-11-29 10:54:34 +08:00
其实 b 乎这点东西,用 c++重写的话,只需要一台服务器就够了
ipoh
2018-11-29 10:56:19 +08:00
@lihongjie0209 人家小公司用个 Python 有啥问题,PHP 一样可以来跑业务。反倒是知乎,有精力多想想怎么改善用户体验留住用户,别老让人下载破 APP
abcbuzhiming
2018-11-29 11:09:29 +08:00
@sujin190
https://mp.weixin.qq.com/s/YKJ-Y6EZevvMK8MX38xE3w
你自己去看人家的分享,
● 机器内存总量约 70TB,实际使用内存约 40TB ;
● 平均每秒处理约 1500 万次请求,峰值每秒约 2000 万次请求;
● 每天处理约 1 万亿余次请求;
● 单集群每秒处理最高每秒约 400 万次请求;
● 集群实例与单机实例总共约 800 个;
● 实际运行约 16000 个 Redis 实例;
● Redis 使用官方 3.0.7 版本,少部分实例采用 4.0.11 版本。

1.6w 个实例,怎么也有几千赢家机器了
abcbuzhiming
2018-11-29 11:10:33 +08:00
@wph95 大哥,你真以为 code review 不要成本的吗?明明静态语言靠 IDE 就能解决的问题你们要引入新的过程来解决,真以为不要成本的吗?
SimbaPeng
2018-11-29 11:16:00 +08:00
非要把动态语言的缺点拿去跟静态语言的优点比?

一个个口口声声都是大项目,又有几个接手过真正的大项目?发出来看看?

哪个大项目不是从小项目做起来的?知乎、Twitter 从一开始做就是大项目了?

知乎当年直接用 go 不一定做得起来,Twitter 当年直接用 scala 也不一定做得起来。
abcbuzhiming
2018-11-29 11:18:17 +08:00
@trait 知乎有个专门的贴:为什么 2010 年前后诞生的语言(如 Golang, Rust, Swift)都是强类型 + 静态( https://www.zhihu.com/question/31100089 )。回答过这个问题,第一代脚本语言,包括现在的 php,javascript,python 都做错了一件事情,因为想要类型推导,把参数类型限定符也去掉了,这在合作型项目里就是灾难,所以现在 php 和 python 都在重新加回参数类型限定符。js 则直接出现了 ts 这样的强类型扩展
Linxing
2018-11-29 11:18:58 +08:00
ins 的用户群体难道比知乎少?

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

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

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

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

© 2021 V2EX