阅读笔记_第一章 微服务与Spring Cloud

1.1 微服务架构概述

1.1.1 应用架构的发展

  • 单体应用架构
    • 表现层、业务层、数据访问层都在一个应用里,没有任何拆分,All in one.
  • 分布式架构
    • 按照业务垂直拆分,每个应用都是单体架构,通过API互相调用
  • SOA架构(Service-Oriented Architecture 面向服务架构)
    • 按照业务拆分服务,如电商系统中订单服务、商品服务等,可以提供服务接口、消费其他服务接口,Dubbo是SOA的典型实现

1.1.2 微服务架构

  • 在某种程度上是SOA架构继续发展的下一步,是一种架构风格
  • 微服务架构技术选型对比
  Spring Cloud Dubbo Motan MSEC 其他
功能 微服务完整方案 服务治理框架 服务治理框架 服务开发运营框架
通信方式 REST/Http RPC RPC/Hessian2 Protocol buffer grpc、thrift
服务发现/注册 Eureka(AP) ZK、Nacos ZK/Conusl 只有服务发现 Etcd
负载均衡 Ribbon 客户端负载 客户端负载 客户端负载 Nginx+Lua
容错机制 6种容错机制 6种容错机制 2种容错机制 自动容错 Keepalived、HeartBeat
熔断机制 Hystrix 提供过载保护
配置中心 Spring Cloud Config Nacos Apollo
网关 Zuul、Gateway Kong、自研
服务监控 Hystrix+Turbine Dubbo+Monitor Monitor ELK
链路监控 Sleuth+Zipkin Pinpoint
多语言 Rest支持多语言 Java Java Java、C++、PHP Java、PHP、Node.js
社区活跃 高(背靠Spring) 高(背靠阿里) 一般 未知

1.1.3 微服务解决方案

  • 基于Spring Cloud
    • 服务发现:Eureka、Consul、etcd、阿里Nacos
    • 共用组件:Feign、Ribbon、Hystrix
    • 网关:zuul(性能低)、Spring Cloud Gateway(性能高)、自研
    • 配置中心:Spring Cloud Config、Apollo、Nacos
    • 全链路监控:zikpin(不推荐)、Pinpoint(不推荐)、Skywalking(推荐)
    • 搭配使用:分布式事务、容器化、Spring Cloud与DDD、gRPC
  • 基于Dubbo
    • Dubbo+Nacos+其他

1.2 Spring Cloud与中间件

1.2.2 什么是Spring Cloud

  • Spring Cloud是一个中间件,由Spring 官方开发维护,基于Spring Boot,提供一套完整的微服务解决方案

1.2.3 Spring Cloud项目模块

阅读笔记_第一章 微服务与Spring Cloud

1.2.4 Spring Cloud与服务治理中间件

  • 服务治理中间件包含服务注册与发现、服务路由、负载均衡、自我保护、丰富的治理管理机制等功能。其中服务路由包含服务上下线、在线测试、机房就近选择、A/B测试、灰度发布等。负载均衡支持根据目标状态和目标权重进行负载均衡。自我保护包括服务降级、优雅降级和流量控制。
  • 阅读笔记_第一章 微服务与Spring Cloud

1.2.5 Spring Cloud与配置中心中间件

  • Spring Cloud Config(基于应用、环境、版本三个维度管理)、Apollo

1.2.6 Spring Cloud与网关中间件

  • 协议适配、安全策略、连接管理、流量管控、熔断机制、降级容错、智能路由、监控/日志
  • Zuul(第一代网关)、Gateway(第二代网关)

1.2.7 Spring Cloud与全链路监控中间件

  • 定位慢调用、定位各种错误、定位各种异常、展现依赖和拓扑、Trace调用链、应用告警
  • Pinpoint、Skywalking

1.3 Spring Cloud增强生态

  • Spring Cloud分布式事务
  • Spring Cloud与领域驱动
  • Spring Cloud与gRPC
  • Spring Could与Dubbo生态融合