架构风格就是一种项目的设计模式。常见的架构风格有基于客户端与服务端的、基于组件模型的(EJB)、分层架构(MVC)、面向服务架构(SOA)等。 v2bb161f96fcd0b917748136e556ef435f_720w.jpg

一、单体架构

单体架构也称为单体系统或单体应用,就是一种把系统中所有功能、模块耦合在一个应用中的架构方式。

  • 单体架构特点:

  打包成一个独立单元,以一个进程的方式运行。

  • 单体架构优点:

  项目易于管理,部署简单

  • 单体架构缺点:

  测试成本高、可伸缩性差、可靠性差、迭代困难、跨语言程度差、团队协作困难

二、RPC架构

v236e2cba4628cf825d91c0b099d6b485c_720w.jpg RPC(Remote Procedure Call):远程过程调用,一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术协议。

代表技术:

  Thrift、Hessian等等。

三、SOA架构

v200b73f7ad75a32ced3e0b2dca0383289_720w.jpg

  • SOA(Service Oriented Architecture):面向服务架构

  • ESB(Enterprise Service Bus):企业服务总线,服务中介。主要是提供了一个服务于服务之间的交互。

  • ESB包含的功能:

  负载均衡、流量控制、加密处理、服务的监控、异常处理、监控告急等等。

  • 代表技术:

  Mule、WSO2

四、微服务架构

v28524ba2b6ec7fc3bff04bd6b135f9f4f_720w.jpg 微服务就是一个轻量级的服务治理方案。一个大型的复杂软件应用,由一个或多个微服务组成,系统中的各个服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注完成一件任务并很好的完成任务。

  • 代表技术:

  SpringCloud、dubbo、dubbox

  • 微服务特点:

  系统是由多个服务构成、每个服务可以单独独立部署、每个服务之间是松耦合的,服务内部是高内聚的,外部是低耦合的,高内聚就是每个服务只关注完成一个功能。

  • 微服务优点:

  测试容易、可伸缩性强、可靠性强、跨语言程度更加灵活、团队协作容易、系统迭代容易。

  • 微服务缺点:

 运维成本高,部署数量较多、接口兼容多版本、分布式系统的复杂性、分布式事物。