美文网首页
01 隔离设计

01 隔离设计

作者: 格林哈 | 来源:发表于2022-09-27 11:15 被阅读0次

1. 隔离设计概述

  • 现实生活中的隔离设计(Bulkheads 设计)
    • 造船上有防漏水的隔板,一般的船无论大小都有这个东西,大一点的船回把船舱隔成若干个空间。这样如果船舱漏水,只会进到一个小空间里,不会让船舱都进水,导致整个船沉。
    • image.png
  • 软件设计中
    • 为了不让故障蔓延开来,需要使用隔板技术,来将架构隔成多个 船舱 来隔离故障。
    • 在分布式软件架构中,一般来说分离有两种方式
      • 一种是以服务的种类来做分离
      • 一种是以用户来做分离。

2.系统的隔离方式

2.1 服务的种类来做分离

  • image.png

1. 微服务架构,将大系统,分离成不同的核心域。

  • 不同核心域,有自己的数据库,从用户接口层,到应用层,领域层完全隔离。
  • 一个核心域的故障不会影响到另一个板块。

2. 问题

  • 同时获取多个核心域的数据,就需要调用多个服务,会降低性能。
    • 性能底 是指响应时间,而不是吞吐量(吞吐量跟性能是反比)
    • 解决方案
      • 设计好用户交互,不让用户在一个页面上获取所有的数据。
  • 大数据平台 ,需要把这些数据抽取到一个数据仓库计算,增加了数据合并的复杂度
    • 一般用一个框架或一个中间件来对数据进行相应的抽取。
  • 如果业务逻辑,跨领域,一个领域的故障也会导致流程走不下去。导致整个业务故障
    • 一方面 保证这个业务流程各个子系统的高可用。
    • 并且在业务流程做出 step-by-step 的方式,这样用户交互每一步都可以保存,以便故障恢复后可以继续执行。
  • 如果跨领域交互变得复杂,
    • 我们需要一个 Pub/Sub 的高可用,且可以持久化的消息订阅通知中间件来打通各个板块的数据和信息交互。
  • 多个领域中分布式事务问题。
    • 采用 两阶段,或者三阶段的模式。

2.2 按用户的请求来做分离

image.png

1. 多租户模式

  • 将用户分成不同的组,并把后端的同一个服务根据这些不同组分成不同的实例。
  • 让同一个服务对于不同的用户进行冗余和隔离,这样一来当服务实例挂断时,只会影响其中一部分用户,而不会导致所有用户无法访问。
  • 对于大客服,可以设置独立分服务实例,或是服务集群与其他客服隔离开来,对于较小的用户,共享一个服务实例,这样可以节省相关的资源。

2. 多租户的做法

  1. 完全独立的设计
    • 每个租户有自己完全独立的服务和数据。
  2. 独立的数据分区,共享的服务
    • 多租户的服务是共享的, 但数据是分开隔离的。
  3. 共享的服务,共享的数据分区
    • 每个租户的数据和服务都是共享的。
  • 优缺点
  • image.png

3. 隔离设计的重点

  1. 定义号隔离业务的大小和粒度,过大和过小都不会,这需要认真的做业务上的需求和系统分析。
  2. 无论是做系统种类分离 还是多租户模式的隔离, 都需要考虑系统的复杂度,成本,性能,资源。定义好要什么和不要什么。
  3. 隔离模式要配置一些高可用,重试,异步,消息中间件,流控,熔断等设计模式的方法配套使用。
  4. 分布式系统中运维的复杂度的提升,需要很多自动化运维的工具。
  5. 需要一个完整的能够看得到所有服务的监控系统。

相关文章

  • 01 隔离设计

    1. 隔离设计概述 现实生活中的隔离设计(Bulkheads 设计)造船上有防漏水的隔板,一般的船无论大小都有这个...

  • 弹力设计-“隔离设计”

    隔离方式 服务的种类 用户 按服务种类分离 存在的问题 一个查询功能需要调用多个服务,降低性能(响应时间) 大数据...

  • 【设计模式】接口隔离原则

    以下内容来自《Java设计模式》 1 接口隔离原则 接口隔离原则定义如下: 接口隔离原则(Interface Se...

  • 作业

    请用接口隔离原则优化cache类的设计,画出优化后的类图 接口隔离:

  • SpringCloud--熔断器:Hystricx

    1.1 Hystrix介绍 Hystrix的设计原则是什么? l 资源隔离(线程池隔离和信号量隔离)机制:限制调用...

  • 弹力设计之隔离设计

    隔离设计对应的单词是 Bulkheads,中文翻译为隔板。但其实,这个术语是用在造船上的,也就是船舱里防漏水的隔板...

  • 架构设计之「服务隔离」

    来源:不止思考 我们在做系统架构设计的时候,经常离不开的一个话题就是进行服务的隔离设计。 那什么是「服务隔离」呢?...

  • 熔断限流-hystrix

    设计原则: 资源隔离 熔断器 命令模式 架构:

  • API 设计规范

    API 设计规范 基础 (1) 隔离关注点 设计时通过将请求和响应之间的不同部分隔离来让事情变得简单。保持简单的...

  • 接口隔离原则

    个人博客原文:接口隔离原则 设计模式六大原则之四:接口隔离原则。 简介 姓名 :接口隔离原则 英文名 :Inter...

网友评论

      本文标题:01 隔离设计

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