基本定义 | 适用范围 | 典型案例 | 缺点 | |
传统架构 | 业务没有进行拆分,都写同一个项目工程里面,一个部署包 | 一般是适合于个人或者是小团队开发 | SSM,SSH单体应用 | 一个模块不可用,整个项目受影响 |
分布式架构 | 将传统的单体项目以项目模块进行拆分 | 小型项目 | 传统商城,各类办公系统 | 系统性能扩展只能通过扩展集群结点,成本高、有瓶颈 |
SOA架构 | 面向与业务逻辑层开发,将共同的业务逻辑抽取出来形成一个服务,提供给其他服务接口进行调用,服务与服务之间调用使用rpc远程技术 | 一定规模团队开发 | 各类子系统中抽取用户管理服务 | 使用XML通讯,在高并发时冗余太大,抽取的服务的粒度过大,系统与服务之间耦合性高,系统与服务的界限模糊 |
微服务架构 | 比SOA架构粒度会更加精细,每个服务必须独立部署,互不影响 | 互联网公司敏捷开发 | 大型互联网应用 | 需要较多的技术积累和一定的技术力量, 微服务过多,服务治理成本高,不利于系统维护。 分布式系统开发的技术成本高(容错、分布式事务等),对团队挑战大。 |