微服务架构介绍

单体架构

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

单体架构特点

  • 打包成一个独立的单元(导成一个唯一的jar包或者是war包)
  • 会以一个进程的方式来运行

单体架构到微服务架构的演变_SOA

单体架构的优点、缺点

优点:

  • 项目易于管理
  • 部署简单

缺点:

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

微服务架构

什么是微服务

微服务是一种架构风格。一个大型的复杂软件应用,由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好的完成该任务。

架构风格

就是项目的一种设计模式。
常见的架构风格有哪些呢?

  1. 基于客户端与服务端的
  2. 基于组件模型的架构(EJB)
  3. 分层架构(MVC)
  4. 面向服务架构(SOA)

微服务特点

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

微服务的优点、缺点

优点:

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

缺点:

  • 接口需要兼容多版本
  • 运维成本过高,部署数量较多
  • 分布式系统的复杂性
  • 分布式事务

MVC、RPC、SOA、微服务架构之间的区别

单体架构到微服务架构的演变_单体架构到微服务架构的演变_02

MVC架构

其实MVC架构就是一个单体架构
代表技术: Struts2 、SpringMVC 、Spring 、Mybatis等

RPC架构

RPC(Remote Procedure Call);远程过程调用。他是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
代表技术:Thrift、Hessian等

SOA架构

SOA(Service oriented Architecture):面向服务的架构。
ESB(Enterparise Service Bus):企业服务总线,服务中介。主要是提供了服务与服务之间交互。
ESB包含的功能:负载均衡、流量控制、加密处理、服务的监控、异常处理、监控告急等。
代表技术:Mule、WSO2等

微服务架构

zk/eureka:注册中心。
微服务就是一个轻量级的服务治理方案。
代表技术:SpringCloud、dubbo等