架构风格就是一种项目的设计模式。常见的架构风格有基于客户端与服务端的、基于组件模型的(EJB)、分层架构(MVC)、面向服务架构(SOA)等。
一、单体架构
单体架构也称为单体系统或单体应用,就是一种把系统中所有功能、模块耦合在一个应用中的架构方式。
- 单体架构特点:
打包成一个独立单元,以一个进程的方式运行。
- 单体架构优点:
项目易于管理,部署简单
- 单体架构缺点:
测试成本高、可伸缩性差、可靠性差、迭代困难、跨语言程度差、团队协作困难
二、RPC架构
RPC(Remote Procedure Call):远程过程调用,一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术协议。
代表技术:
Thrift、Hessian等等。
三、SOA架构
-
SOA(Service Oriented Architecture):面向服务架构
-
ESB(Enterprise Service Bus):企业服务总线,服务中介。主要是提供了一个服务于服务之间的交互。
-
ESB包含的功能:
负载均衡、流量控制、加密处理、服务的监控、异常处理、监控告急等等。
- 代表技术:
Mule、WSO2
四、微服务架构
微服务就是一个轻量级的服务治理方案。一个大型的复杂软件应用,由一个或多个微服务组成,系统中的各个服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注完成一件任务并很好的完成任务。
- 代表技术:
SpringCloud、dubbo、dubbox
- 微服务特点:
系统是由多个服务构成、每个服务可以单独独立部署、每个服务之间是松耦合的,服务内部是高内聚的,外部是低耦合的,高内聚就是每个服务只关注完成一个功能。
- 微服务优点:
测试容易、可伸缩性强、可靠性强、跨语言程度更加灵活、团队协作容易、系统迭代容易。
- 微服务缺点:
运维成本高,部署数量较多、接口兼容多版本、分布式系统的复杂性、分布式事物。