中级农民
- 积分
- 107
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2014-2-26
- 最后登录
- 1970-1-1
|
说你心心念念的scale。多大的scale算大?服务器1M QPS还是数据库1B rows?咱就拿1M QPS举例子吧。
你以为的1M QPS:负载均衡与高并发cache齐飞,分布式架构共多线程优化一色。各种黑科技狂拽炫酷吊炸天,要是能偷学到一点武功秘籍,日后必将成为QPS之神一统江湖。
实际的1M QPS:100台20核服务器只用30%的CPU和memory utilization老神在在毫无压力。负载均衡和cache跟你的小service没有太大区别,都是从infra那边拿来主义不会自己从头写的。公司钱多server多,随便开个新service默认最低都有10+task。多线程?framework已经帮你解决了大部分的问题了,自己学一学并发与线程锁大概去翻翻os的教材做几个codelab就学差不多了。
抛开业务只谈QPS是耍流氓的,比如说每台机器处理10k的QPS,听着“哇,这也太炫酷了吧,我们组为啥只有10 QPS啊!”,但是你往底层想想呢?每个CPU core在同一时间只能处理一个request,20核就是20个并发线程。要能处理10k的QPS意味着处理每个request大概只能有2ms的时间。你说这是怎么做到的啊?那可能是因为人家的业务逻辑就是贼简单,比如就从cache里取个数据。你们可能业务逻辑比较重,dependency比较多,要fanout到好几个别的系统里面去取数据,因而处理一个request就要1s。那你无论如何也做不到一台机器10K QPS的。. 1point 3acres
如果你觉得自己CS基础比较薄弱,要补的是CS那些课程,最起码你可以买几本书读一读。真想进阶光靠换组学东西是不行的,换一个组重学一遍业务逻辑是真的在浪费生命。无论在哪个组做什么业务都尽量透过现象看本质,你把你们组的技术都吃的透透的?哪怕用的还是MySQL,真学起来MySQL每一条设计理念都是跪着看的。如果你只完成老板给的活,只学着用别人已经写好的library,那是没法进步的,就算去了大scale的组也只能学到些皮毛,真连着问你三个为什么你就又不会了。你要本身没有学习的意愿,必须靠老板安排活才学习,那换不换组进步都快不了的。
最后说你们组,没L5压着,不用按资排辈。scope小,业务熟悉出活快,impact高,自治权力大。组里人之间相亲相爱,互相支持工作。至于L5 scope的project,你只要一直跟组长提,会有的。就算真没有,你要有心会来事,自己可以学着pitch,本来升了L5也不能天天等着组长给安排活。
反正我要是你我是不换组。 |
|