1

在反应式编程中,弹性是通过复制、包含、隔离和委托来实现的。

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

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

4

3 回答 3

0

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

  • 单元隔离——将系统拆分为多个部分,并将这些部分相互隔离。整个系统绝不能失败。
  • 减少负载– 实施速率限制器,减少应用程序无法处理的任何额外负载,以确保应用程序能够应对请求数量的峰值。应用程序处理的任何请求都会消耗 CPU、内存、IO 等资源。如果请求的速度超过了应用程序的可用资源,应用程序可能会变得无响应、行为不一致或崩溃。
  • 重试– 通过透明地重试失败的操作,使应用程序能够在尝试连接到服务或网络资源时处理瞬时故障。
  • 超时- 等待预定的时间长度,如果超过该时间,则采取替代措施。
  • 断路器——连接到远程服务或资源时,处理可能需要不同时间才能恢复的故障。
  • 有界队列——在大量使用的资源前限制请求队列的大小。
于 2019-03-01T13:38:10.117 回答
0

除了 BulkHead 和 CB 之外,几乎没有其他可以实现的东西:

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

冗余、故障转移系统也可以结合起来,以实现针对系统故障的弹性

于 2017-08-14T10:21:17.090 回答
0

反应式编程不能只是在设计模式中恢复。在设计高性能和可用性系统时,需要牢记许多关于系统架构、开发操作等的注意事项。

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

于 2017-03-25T00:52:29.393 回答