单体架构
简单的说就是将不同业务场景的表现层,业务逻辑层,数据访问层放在一个工程中,最终经过编译,打包,部署在一台服务器上。
优点:
* 开发简单
* 基本不会重复开发
* 功能都在本地没有分布式的管理开销和调用开销
缺点:
* 开发效率低:所有代码在一个项目,开发人员需要相互等待,代码冲突不断
* 部署不灵活:构建时间长,任何小修改都需要重新整个项目。
* 稳定性不高:一个业务出小问题,整个项目挂掉
* 扩展性不够:无法满足高并发情况下的业务需求
SOA架构
SOA是面向服务的架构,是B/S模型,XML/Web Service的技术延伸。DUBBO是淘宝公司的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。淘宝公司的许多应用就是采用dubbo,运行稳定成功。现在,不少企业采用dubbo开发应用系统。Dubbo是简单有效的soa架构,值得采用。
优点:
- 把模块拆分,使用接口通信,降低模块之间的耦合度
- 把项目拆分成若干个子项目,不同的团队负责不同的子项目
- 增加功能时只需要在增加一个子项目,调用其它系统的接口就可以
- 可以灵活的进行分布式部署
缺点:
- 系统之间交互需要使用远程通信,接口开发增加工作量
微服务
微服务,又称微服务架构,是一种分布式的系统。就是将一个单体架构的应
用按业务划分为一个个独立运行的程序即服务,它们之间通过 HTTP 协议进行通信,可以采用不同的编程语言,使用不同的存储技术,自动化部署减少人为控制,降低出错概率。服务数量越多,管理起来越复杂,因此采用集中化管理。
优点
- 独立开发:所有微服务都可以根据各自的功能轻松开发。
- 独立部署:基于其服务,可以在任何应用程序中单独部署它们。
- 故障隔离:即使应用程序的一项服务不起作用,系统仍可继续运行。
- 混合技术:可以使用不同的语言、技术来构建同一应用程序的不同服务。
- 粒度缩放:单个组件可根据需要进行缩放,无需将所有组件缩放在一起。