SpringCloud与分布式服务

一、微服务发展历程



什么时候用微服务?

  1. 微服务应用在复杂度低的情况下,生产力反而比单体架构低

  2. 在复杂度高的地方,情况恰恰相反。

中台建设

二、微服务架构的最佳实践

1. 旧系统改造

  • 功能剥离、数据解耦
  • 自然演进、逐步拆分
  • 小步快跑、快速迭代
  • 灰度发布、谨慎试错
  • 提质量线、还技术债

2. 系统拆分

  • 高内聚低耦合

3. 扩展立体方

  • x轴,水平复制:复制系统
  • y轴,垂直拆分:拆分业务
  • z轴,数据分区

4. 自动化管理

  • 自动化测试
  • 自动化部署
  • 自动化运维

降低拆分带来的复杂性,提升测试、部署、运维效率

5. 分布式事务

使用幂等、去重、补偿的方法来保证数据的一致性。慎用分布式事务

6. 监控与运维

  • 业务监控
  • 系统监控
  • 容量规划
  • 报警
  • 故障处理

三、SpringCloud技术体系

微服务架构:

服务选型:

相关工具

  1. 监控
  • ELK
  • Promethus+Grafana
  1. 链路追踪
  • Pinpoint
  • zipkin
  • jaeger
  • skywalking

  1. 权限控制
  • CAS+SSO
  • JWT,OAuth2.0
  • SpringSecurity,Apache Shiro
  1. 数据处理
    1. 读写分离与高可用:HA
    2. 分库分表:Sharding
    3. 分布式事务:DTX
    4. 数据迁移:Migration
    5. 数据集群扩容:Scaling
    6. 数据操作审计:Audit
  2. 网关与通信
  • 流量网关与WAF:Nginx、OR、Kong、Apisix
  • 业务网关 Zuul、Zuul2、SpringCloudGateWay
  • Rest与其他协议(websocket、actor、rsocket、mq...)
书山有路勤为径,学海无涯苦作舟
原文地址:https://www.cnblogs.com/javammc/p/15163875.html