沈剑,58到家技术总监,技术委员会负责人。曾任百度高级工程师,58高级架构师,C2C技术部负责人,58技术委员会主席,58技术学院优秀讲师。

问:你曾作为架构师参与过哪些项目?

我在2009年加入百度,参与与负责过许多百度hi重大项目的研发。2011年加入58同城,负责过58同城即时通讯,支付系统重构,摊销系统重构,数据库中间件,58同城推荐系统,58同城商户平台App,58同城二手交易平台APP等多个系统与项目的设计与实现。2015年9月我被调到58到家,负责到家基础服务与架构平台的搭建。

问:你曾做过很多不同类型产品的架构,从58帮帮到58推荐系统,再到58帮帮APP,这些不同类型的产品架构对你提出过哪些挑战?

不同的经历丰富了我的业务知识以及系统架构设计经验。即时通讯后端架构、推荐系统架构、APP架构,不同的业务形态有着不同的业务特点,也有着不同的系统架构特点,主要矛盾可能不一样,例如:

  • 58帮帮即时通讯架构是基于通知的系统,对消息实时性、可靠性要求比较高,有一个路由层与其他系统不同。
  • 58推荐系统架构是线上与线下的综合系统,需要支持实验平台,有一个分流层与其他系统不同。
  • 58帮帮APP是一个无线APP,在连接稳定性、流量敏感性方面有着不同的挑战。

问:写“架构师之路”这个微信公众号的初衷是什么?

互联网的核心是分享,写“架构师之路”的初衷就是把自己积累的一些技术沉淀下来,分享给更多的技术人,希望大家有所收获。下面就是“架构师之路”的二维码,有需要的朋友可以关注一下。

问:最近几个月“架构师之路”更新得比较少,请问有什么特殊原因吗?

今年4、5月份之后更新的就比较少了,实在抱歉。今年3月份的时候,58同城做了一次组织架构的调整,我被抽调去负责C2C技术部,接口58二手、58心宠、58优品三块,需要重新组建团队,规划系统,项目管理。当时实在太忙了,就降低了更新频率。不过大家放心,最近会持续更新,欢迎大家关注。

问:作为一位架构师,你掌握了很多关于产品经理、数据分析,以及广告方面的知识,请问这部分知识储备对于一位架构师来说是否是必须的?

对产品的了解、对业务的了解是必须的,架构最终是为业务服务的。对数据的敏感度也是要有的,在追查问题的过程中非常有用。至于广告方面的知识,只是个人兴趣爱好,我觉得广告比较有意思,自己学习学习而已。

问:去年你在Top100summit上分享的案例是“58同城的推荐系统架构设计与实现”,今年为什么要挑选“无线APP后端架构实现”这个主题?和你现在从事的工作有关吗?

首先是帮帮APP项目中自己有一些经验,想拿出来和大家分享分享;其次是APP现在非常火,APP后端架构应该很多小伙伴会感兴趣。

问:对于58同城来说,无线APP后端和IM后端需要面对哪些具有58特色的架构问题?你设计和实现了哪些具有独创性的解决方案?

谈不上独创性的解决方案,只能说我们有一些自己的经验,例如:

  • 1)APP使用ip直连web-server以加速访问;
  • 2)使用id和实体分开拉取、延时拉取来节省流量;
  • 3)使用时间戳来节省流量;
  • 4)在服务端动态实现一些APP上的功能;
  • 5)…

还有很多,在这里就不展开了,感兴趣的同学可以来参加将在今年12月4日到6日举行的Top100summit技术大会,会上我们一起交流。

问:MySQL在被Oracle收购之后,开源程度大不如前,很多人都弃MySQL(和MongoDB)而投向PostgreSQL,58同城是否会考虑同样的技术转型?为什么?

短期内我们肯定不会放弃MySQL,这是我们的主要存储,全面转型代价太大。中长期,我们会做自己的KV,Klist存储系统,以应对自己大数据量的特殊业务需求。

问:你是否经常会去研究Youtube、Twitter这些著名网站的系统架构?你认为其他开发者或架构师在学习借鉴其他网站架构的时候应该注意些什么?

其实也谈不上研究。了解、学习和借鉴兄弟公司的架构技术,对发展自己公司的架构技术会有帮助,能少走一些弯路。

要注意的是,借鉴的过程中,一定不能只用“拿来主义”,一定要结合自己的业务,看这些技术自己是否真的适用。58同城的一个教训是,MongoDB大行其道的几年,我们也拿来用,结果走了弯路,发现自己并不适合,现在又摒弃了MongoDB。

问:对于想要成为架构师的人,你有什么建议?

成为一名架构师,个人感觉三点非常重要:

  • 1)时刻保持对业务的关注,一切抛开业务的架构设计,都是耍流氓;
  • 2)要专注,时刻保持对技术的专注度;
  • 3)要耐得住寂寞,沉得下心来,并发/数据/机器规模越来越大的时候,一定会出现很多问题,沉下来把问题解决,技术能力就提高了。

更多精彩,加入图灵访谈微信!