侵权投诉
订阅
纠错
加入自媒体

小米网技术架构变迁实践

2016-02-14 10:22
木中君
关注

  “先卖10000台再说!”2011年8月9日,小米网负责人黎万强在公司内部大会上这样说道。时间回到4年多前,在小米“标配”产品发布日8月16日前几天,小米公司100多号人沉浸在即将到来的第一款产品诞生的亢奋中,但是,没有人能告诉我们:未来,我们将能走多远\做多大。彼时,小米网仅有三位开发工程师,在经过两个多月的紧张开发后,小米网将要第一次面对公众在线销售产品,接受大考。由于工程师资源极度紧张,我们甚至考虑过使用ECSHOP之类的开源系统搭建小米网,不过幸好我们很快放弃了这一想法。因为在3个月之后,我们就发现不得不对系统进行一轮重构了。如果使用了第三方开源系统,为适应原系统架构,我们将长期被迫“迁就”原架构而放弃很多更优的设计,并为学习这个系统而付出时间成本。

  第一代的小米网架构非常简单,如图1所示。

图1 第一代小米网架构

  我们实现了一个最基本的电商网站基本组件:在线销售系统、订单处理系统、仓储和物流系统,其中物流只对接了兄弟公司凡客的子公司如风达(现已独立)。所有的业务系统共用一个数据库。这样运行了几个月,发现网站访问量越来越大,当有新品销售时,面对突然激增的大量访问,数据库压力陡增,造成后端业务系统几乎无法使用。

  2012年上半年,在小米网运行半年多后,我们决定将业务系统进行拆分,首先将销售系统剥离,之后逐步将越多越多的子系统拆分。拆分后各业务系统相对独立,各自使用自己的数据库,这样就完美解决了不同系统抢占数据库资源的问题,也让模块更清晰,程序员也能专注于自己负责的业务系统的开发,如图2所示。

图2 拆分业务系统

  这种结构随着小米网子系统的增多,只运行了几个月,我们就发现灾难开始显现了:我们需要维护的接口越来越多。系统间接口调用图变成了图3这样。

图3 系统间接口调用图

1  2  3  4  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

物联网 猎头职位 更多
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号