弹性微服务设计模式

时间:2016-09-21 16:42:31

标签: reactive-programming microservices resiliency

反应性编程中的

通过复制,遏制,隔离和委派来实现弹性。

两种着名的设计模式是带有监控器和断路器的隔板。这些只是为了达到隔离和遏制吗?

微服务最着名的设计模式是什么,特别是那些提供弹性的设计模式?

3 个答案:

答案 0 :(得分:0)

Reactive Programing无法在设计模式中恢复。在设计高性能和可用性系统时,需要考虑有关系统架构,开发等的许多注意事项。

具体来说,关于弹性,您应该考虑,例如:

答案 1 :(得分:0)

除了BulkHead和CB之外,很少有其他可以实现的东西:

  • Idempotent Ops上的重试模式。这要求重试的操作是幂等的,并且在重复执行时会产生相同的结果。
  • 适当的超时配置,例如网络依赖时的连接,命令超时
  • 虚拟主机/侦听器级别的有界请求队列
  • 故障转移策略,如缓存

冗余,可以合并故障转移系统以实现对系统故障的弹性

答案 2 :(得分:0)

您可以实施各种弹性模式,以根据需要实现不同级别的弹性。

  • 单元隔离 –将系统拆分为多个部分并隔离这些部分 互相反对。整个系统绝不能失败。
  • 关闭负载 –实施速率限制器,以减少任何额外的负载 应用程序无法处理,以确保应用程序具有弹性 导致请求数量激增。由处理的任何请求 应用程序消耗CPU,内存,IO等资源。如果 请求的速率超过了应用程序的可用速率 资源,则该应用可能会变得无响应,行为不一致或 崩溃。
  • 重试 –启用应用程序以处理瞬态故障 尝试通过透明方式连接到服务或网络资源 重试失败的操作。
  • 超时 –等待预定的时间长度并采取 如果超过该时间,则采取其他措施。
  • 断路器 –在连接到远程服务或资源时, 处理可能需要花费不同时间才能恢复的故障 来自。
  • 有界队列 –在频繁使用的队列前面限制请求队列的大小 资源。