zoukankan      html  css  js  c++  java
  • 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...)
    书山有路勤为径,学海无涯苦作舟
  • 相关阅读:
    React组件的生命周期
    什么是Mixin
    React的Element的创建和render
    React入门
    Go语言中的map
    Go语言模拟实现简单的区块链
    Go语言中的slice
    Go语言中的struct tag
    spring 与springmvc容器的关系
    SSM Controller 页面之间跳转 重定向,有参 无参问题
  • 原文地址:https://www.cnblogs.com/javammc/p/15163875.html
Copyright © 2011-2022 走看看