单体架构:
对于一般中小型项目来说,我们常用的都是单体架构,也就是所一个项目中所有的业务都写在一个项目程序里面
好处是 方便开发,集中管理,没有分布式的损耗(网络请求转发等)
但是缺点是不好维护,升级困难(如我只需要升级一个小功能,升级过程中会影响到整个项目的全部业务),而且项目规模不易扩展
单体架构的垂直拆分:
在原本的单体架构上将业务进行拆分为小单体模式,然后独立部署,独立维护
好处是能够将各个业务模块分而治之,A业务更新的时候不会影响到B业务
但是缺点也是显而易见,如果A,B业务都同样用到 用户服务 这个功能,那么A,B就会有相同的代码,如果需要改动,涉及的业务都要进行同步修改
分布式架构:
在垂直拆分的基础上,把公用的服务独立出来,将一系列的服务组成系统,减少相同代码
(但是同样,不要为了分布式而分布式,如果对于本身业务量不大或者用户体量不大的项目来说,没必要增加系统的复杂性)
但是也会有响应的问题迎面而来,比如 数据一致性,服务可用性等,但是当解决了这些问题后,我们的整个分布式架构能给项目带来很大的好处,如系统的高性能,高可用,高扩展性,高伸缩性等
微服务架构:
微服务是分布式的一种,是把分布式当成解耦手段,完成解耦的架构模式,只是微服务的微,是指把服务分的更细化