美文网首页SpringCloud
架构师进阶实战随堂笔记二

架构师进阶实战随堂笔记二

作者: 山东大葱哥 | 来源:发表于2019-04-24 00:43 被阅读272次

    场景二:微服务架构的高可用问题,高可用架构师设计方法与实践案例

    为什么要有软件架构

    • 每个人都可以自己完成全部工作的时候不需要架构,架构解决复杂性问题
    • 软件越来越复杂
    • 分工合作
    • 职责划分

    什么软件架构

    • 定义:软件架构师一个系统的草图,包含了各个组件、组件间的关系和组件之间是如何通讯和数据交换的。
    • 用以满足用户实际需求的系统设计方案
    • 在设计原则之上,对系统的各个部分组合,形成软件架构
    • 类似于建筑物的架构概念,但有很多区别
    • 两大要素
      组件(系统边界)
      组件之间的关联和通讯


      image.png

    什么是微服务架构

    微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的,各个微服务?


    image.png

    为什么需要微服务架构

    image.png

    微服务架构的特点

    谁开发、谁运营
    去中心化治理



    image.png

    微服务架构与SOA架构的比较

    image.png

    常见的微服务组件及概念

    • 服务注册
    • 服务发现
    • 负载均衡
    • 服务网关
      服务调用的唯一入口(中心化),可以在这个组件实现用户鉴权、动态路由、灰度发布、A/B测试、负载限流等功能
      比如servermash
    • 配置中心
    • API管理
    • 集成框架
    • 分布式事务 TCC、高可用消息服务、最大努力通知
    • 调用链
      记录完成一个业务逻辑时调用到的微服务,并将这种串行或并行的调用关系展示出来。在系统出错时,可以方便找出出错点。
    • 支撑平台
      部署、运维、健康自动化
      Docker
      持续集成、蓝绿发布、健康检查、性能健康等。


      image.png
      image.png
      image.png

    软件架构的目标 更高层次的观察和思考问题

    • 可靠性(Reliable)
    • 安全性(Secure)
    • 可伸缩性(Scalable)
      峰值和谷值差距很大的情况下如何设计系统资源
    • 可扩展性(Extensible)
      可预见的扩展性,不要过度设计,太浪费
    • 可维护性(Maintainable)


      image.png

    软件架构的分类

    image.png

    什么是软件架构高可用(衡量标准)

    比如全年3个九


    image.png

    软件架构高可用的重要性

    image.png

    架构高可用的常用手段都有哪些

    • 设计无状态化 应用服务器多个实例之间完全对等,请求提交到任意服务器,处理结构都一样
    • 消除单点 多机房、多应用、分片、主备、集群
    • 流量监控和控制
    • 子系统冗余
    • 幂等性设计
      有些服务必须在服务保证服务重复调用和调用一次产生的结果相同
    • 异步调用
    • 超时机制 所有网络调用都设置超时时间,防止雪崩。客户端友好提示,提升用户体验
    • 分级管理
    • 服务降级
    • 系统监控报警
    • 快速实现服务发布、回滚


      image.png
      image.png

    API网关设计的难点

    1. 后端API粒度的划分
      避免万能接口


      image.png
    2. 网关透传千级别的API接口,如何保证


      image.png
    3. 不停机发布


      image.png
    4. 承载海量


      image.png

      5.安全


      image.png

    什么是SpringBoot

    • 和微服务、云的契合度非常高
    • 帮助微服务落地的框架


      image.png

    SpringBoot主要特性

    image.png

    SpringBoot 优点

    • 使编码更简单
    • 是配置更简单


      image.png
      image.png
      image.png
      image.png

    SpringBoot快速搭建案例

    image.png
    image.png
    image.png
    image.png
    image.png
    image.png

    本章小结

    • 什么是软件架构
    • 什么是微服务架构 一种架构风格,可被独立部署、代表一个独立的业务能力
    • 微服务架构的特点 组件化可插拔、独立团队、去中心化(每个微服务有独立的数据存储)、基础设施自动化、监控与故障处理机制
    • 微服务架构与SOA架构的比较 SOA总线机制
    • 高可用的目标:可靠性、安全性、可伸缩性、可扩展性、可维护性
    • Spring Boot


      image.png

    相关文章

      网友评论

        本文标题:架构师进阶实战随堂笔记二

        本文链接:https://www.haomeiwen.com/subject/fkflwqtx.html