一、微服务架构演变过程

前言

本文是根据蚂蚁课堂余胜军老师的课程所做笔记,记录的要点,部分自己的理解可能有所偏差,不当之处会进行修改。

微服务架构演变历程

传统单体架构→分布式架构→SOA面向服务架构→微服务架构模式

传统单体架构模式

单体架构就是单点应用,早期的SSM和SSH整合项目就是单点应用。即分层架构模式,数据库访问层、业务逻辑层、控制层、前后端的交互都是一个人写的。

这种模式,一个项目的所有代码都在一起,部署到同一个服务器上。

优点:开发简单、运维简单。适合个人或者小团队开发。

缺点:代码耦合度高、项目可用性差,容易崩溃。不适合团队模式协同开发。

适合场景:政府项目、管理系统、crm客户关系管理系统

分布式架构模式

基于传统的单体架构演变,将传统的单点系统根据实现业务拆分。从而降低整个项目的耦合度。有利于团队的开发。

SOA面向服务架构模式

SOA(Service-Oriented Architecture)基于分布式架构演变,俗称服务化,也就是面向接口开发(服务开发),将共同存在的业务逻辑抽取成一个公共的服务,提供给其他结构实现调用,服务与服务之间采用rpc远程调用技术。

服务里只有业务逻辑,没有视图层。

不同服务之间可以相互调用,解少了代码冗余。

SOA架构模式特点:

  1. SOA架构模式传输协议采用SOAP协议(http/https+XML)实现传输,在高并发情况下实现通讯该协议存在大量的冗余性传输,非常占用带宽。所以微服务架构使用json代替了xml
  2. SOA架构模式实现方案WebService或者ESB企业服务总线,底层采用SOAP协议传输

SOA架构模式的缺点:

  1. SOAP协议实现通讯,xml传输非常重,效率比较低
  2. 服务化管理和治理设施不够完善。
  3. 依赖于中心服务发现机制
  4. 不适合前后端分离架构模式

微服务架构模式

从soa架构模式演变过来,比SOA架构对服务拆分的粒度更加精细,让业务界限更加清晰,专业的人去做专业的事,实现高效率开发。每个服务独立部署、互不影响。

服务与服务之间的通讯协议采用restful形式,数据交换格式采用http+json格式实现传输。

整个传输过程中,采用二进制,所以http协议可以实现跨语言的平台,并且和其他语言实现通讯。

SOA架构与微服务架构的区别

  1. 通讯协议

    微服务架构基于SOA架构,继承了SOA架构优点,在微服务架构中去除SOA架构中SOAP协议和ESB企业服务总线,改为http+json形式传输接口。

  2. 服务拆分

    微服务架构比SOA架构的粒度更加精细,提倡让专业的人去做专业的事。每个服务互不影响。每个服务都是单独独立数据库、redis连接、MQ等。并且都是独立部署,整个服务架构更加轻巧。

  3. 迭代

    微服务的架构模式比SOA架构模式,更加适合敏捷、高效、快速迭代。

微服务架构中存在的问题

  • 分布式事务解决方案(rabbitmq、rocketmq事务消息、lnc(淘汰)、setata)最终一致性概念
  • 分布式任务调度平台(XXL-Job、AlibabaCloud Scheduler、elastic-job)
  • 分布式服务注册与发现(eureka、consul、zookeeper、Nacos)
  • 分布式日志采集系统elk+kafka
  • 分布式服务追踪与调用链系统Zipkin
  • 分布式服务配置中心(springcloud config/nacos/disconfig/携程阿波罗)
原文地址:https://www.cnblogs.com/ylcc-zyq/p/13131599.html