您的位置:首页 > 编程语言 > Java开发

SpringCloud与分布式服务

2021-08-19 21:11 501 查看

一、微服务发展历程

什么时候用微服务?

  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. 数据处理 [ol] 读写分离与高可用:HA
  2. 分库分表:Sharding
  3. 分布式事务:DTX
  4. 数据迁移:Migration
  5. 数据集群扩容:Scaling
  6. 数据操作审计:Audit
  • 网关与通信
  • [/ol]
    • 流量网关与WAF:Nginx、OR、Kong、Apisix
    • 业务网关 Zuul、Zuul2、SpringCloudGateWay
    • Rest与其他协议(websocket、actor、rsocket、mq...)
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: