网易美学-系统架构系列1-分布式与服务化

 作者:李元洪

1.背景介绍

网易美学于2016年8月上线,是以产品和技术为核心,以丰富的美妆产品库,用户使用合辑心得为内容载体的社区型产品。和绝大多数初创团队技术架构选型一样,为了快速上线,美学在一开始选择了单应用模式,所有的功能都打包放在一个war包里,基本没有外部依赖,应用部署在一个tomcat容器里,包含了client,web,运营后台等所有的逻辑,这个状况一直持续到2016年12月,重构就从这样“大杂烩”的背景开始。

2.单应用模式的美学

 

单应用比较适合比较小型的项目,优点总结如下:

  • 开发简单直接,可以集中控制

  • 功能都在一个应用里面,没有分布式管理的开销(分布式事务,跨域性能,数据一致性)

  • 一体化的mvc,结构简单

 

但是它的缺点也非常明显,新美业务膨胀开始后,这一架构受到越来越多的限制

  • 所有开发都在一个应用改代码,导致开发效率低

  • 构建时间较长,任何小的需求变动,都要整体编译打包部署

  • 业务之间相互影响,修改一个模块的功能,可能影响毫无关联的另一个模块

  • 稳定性不高,强依赖应用服务器和数据库的处理能力

针对这些问题,新美在设计上采用了              

 

3.2技术准备

             

 

3.3 服务规范制定

 

            

 

4.服务化实施过程

4.1 业务建模

    这一步是服务化的基础,需要拆分多少子服务,服务间的依赖关系,都需要通过业务建模表示清楚。

    新美是以美妆社区为业务载体的应用,针对女性化妆产品,用户可以产生大量的内容,进而产生简单的社交行为。

 

            

 

4.2 服务如何提供

    在新美微服务架构中,每一个服务都有多个拷贝,用来做负载均衡,一个服务随时可能下线(发布时候),也可能应对临时访问压力来增加新的服务节点(线上活动预案),这涉及到服务发现的问题,新美通过zookeeper作为服务注册信息的分布式管理,通过心跳检测维持长连接,实时更新服务信息。

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信