2.1 系统架构演化史

文档对应视频课程中2.1系统架构演化史,请小伙伴们对应学习。

第一阶段1.0版本

项目初期会因为人员原因(比如只有1,2个人来参与这个系统)或者系统的周期原因(比如公司需要项目尽快上线,来验证创业思路的正确性等等),技术人员会选择成熟的开源软件来搭建项目,因为PHP在这方面的优势比较明显。所以一般都会选择PHP的开源程序来搭建。

1.0版本

第一层是web层有PC端,移动端,APP,小程序等等,第二层是服务层,1.0版本只是一个开源程序,没有任何架构可言,第三层是数据层,一般开源程序只会有数据库mysql,极个别好一点的开源程序会支持redis memcahe等。这个架构图还是很简单的,并且很多开源程序的web层和服务层是一起的,并没有分开。

第二阶段2.0版本

随着系统的不断发展,开源程序越来越不满足业务的需求,刚开始可以对开源程序进行二次开发,但是可维护性呢就会变得越来越差。这时就需要自主搭建系统和原来的开源程序分离开,来避免这些问题。因为开源程序的语言是PHP,换语言就会有人力成本的增加等等,所以还是会选择PHP语言来进行搭建。这个时候系统的架构就会变成开源程序和自主代码并存的方式。

2.0版本

第一层也是web层,第二层是服务层,由开源程序和自主代码并存。项目一般都是按照端来改造,比如APP调用的api服务先用自主代码实现。第三层是数据层,2.0版本在数据层的改造是巨大的,这个时候redis就会发展成集群模式,而mysql数据库也会发展为多个数据库 主从同步模式。这个阶段的架构不仅能满足业务发展的需求,也会通过数据层的改造,满足系统的压力。在web层和服务层的改变不是很明显。

第三阶段3.0版本

随着业务的不断发展,数据量就会不断变大,用户访问量也会不断变大等等原因,简单的系统架构就会出现性能瓶颈。比如访问速度变慢,系统不稳定等等。这个时候就会对系统进行改造。 系统就会变完全自主开发,服务拆分等等,这个时候才能说系统真正的有了架构。

3.0版本

  • web层

    虽然还是PC端、移动端、APP等,但是在架构上有了很大的改变,这个阶段基本会采用前后端分离的模式,web层也有了自己的语言和架构,并不会和服务层有关联。并且在web层会做CDN缓存,负载均衡等等。

  • 服务层

    分为了两部分,左边部分是中间件部分,比如MQ以及第三方公司的功能,比如发短信,双呼。右边部分。系统根据具体实例进行拆分,比如视频相关的视频服务,用户相关的用户服务,每个服务单独部署,互相没有影响。

不一定每个系统都是这样的。像京东、百度等等因为自己的架构比较成熟,也有很多的人力资源,会直接按照3.0版本的架构来开发。而创业公司大都是按照上面的历程来的。

课程中的待改造的项目处在2.0的阶段,它的服务层是由开源的thinkphp框架搭建的

results matching ""

    No results matching ""