Microservice - upan/cheat-sheet GitHub Wiki

微服务体系

目前的微服务体系主流以SpringCloud为主,目前又分为三个流派SpringCloudNetflex 、SpringCloudAlibba以及近期开源的Spring-Cloud-Tencent 其他的还有dubbo和grpc、brpc等 。

Spring Cloud

Spring Cloud,是一系列框架的集合,其基于Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,构建了服务治理(发现注册)、配置中心、消息总线、负载均衡、断路器、数据监控、分布式会话和集群状态管理等功能,为我们提供一整套企业级分布式云应用的完美解决方案。 Spring Cloud 具有特性,以及适用于哪些场景等包含:

  • Distributed/versioned configuration,基于版本的分布式配置管理
  • Service registration and discovery,服务注册与发现
  • Routing,路由
  • Service-to-service calls,服务之间调用(依赖)
  • Load balancing,负载均衡
  • Circuit Breakers,断路器
  • Global locks,全局锁(分布式锁)
  • Leadership election and cluster state,选主以及集群状态管理
  • Distributed messaging,分布式消息服务

Spring Cloud Netflex

Spring cloud Alibaba

Spring Cloud Tencent

Spring Cloud Tencent 是腾讯开源的一站式微服务解决方案。Spring Cloud Tencent 实现了 Spring Cloud 标准微服务 SPI,开发者可以基于 Spring Cloud Tencent 快速开发 Spring Cloud 微服务架构应用。Spring Cloud Tencent 的核心依托腾讯开源的一站式服务发现与治理平台 Polarismesh ,实现各种分布式微服务场景。 Spring Cloud Tencent提供的能力包括但不限于: Spring Cloud Tencent 能力模型

服务注册与发现

TODO

负载均衡

TODO

服务动态配置

TODO

HTTP调用框架

服务网关

TODO

分布式缓存

TODO

服务治理:限流、熔断、降级

TODO

限流

TODO

熔断&降级

TODO

分布式事务

解决方案有几种:使用RocketMQ的事务消息、分布式事务中间件(如seta)

RocketMQ事务消息

Seta

seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 官网地址: http://seata.io/zh-cn/ 分布式事务处理过程的一ID+三组件模型:

一ID:

Transaction ID XID : 全局唯一的ID

三组件概念:

  • Transaction Coordinator(TC)-事务协调者 : 维护全局和分支事务的状态,驱动全局事务提交或回滚。
  • Transaction Manager(TM)-事务管理器 : 定义全局事务的范围:开始全局事务、提交或回滚全局事务。
  • Resource Manager(RM)-资源管理器 : 管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

处理过程

image

  1. TM向TC申请开启一个全局事务,全局事务创建成功并生成一个全局唯一的XID
  2. XID在微服务调用链路的上下文中传播
  3. RM向TC注册分支事务,将其纳入XID对应全局事务的管辖
  4. TM向TC发起针对XID的全局提交或回滚决议
  5. TC调度XID下管辖的全部分支事务完成提交或回滚请求

发布说明:https://github.com/seata/seata/releases

分布式ID

TODO

分库分表

目前使用最多的解决方案是 sharding-jdbc

消息队列

TODO

可观测性:服务监控和链路追踪

TODO

Mock 框架

TODO

数据同步

TODO

日志体系

TODO:ELK

DevOPS

TODO

其他

TODO 云原生,后面单独开一页进行梳理