【问题标题】:Measuring Microservices - Fault Tolerant测量微服务 - 容错
【发布时间】:2017-10-25 21:40:54
【问题描述】:

微服务架构的好处之一是容错。这意味着一项服务中的任何问题都不应影响其他服务。因此,它应该提高特定服务的可用性。但是,一些实现,例如 HA、自动缩放也有助于提高可用性。与其衡量服务可用性的一般性,我们如何能够更具体地量化衡量微服务在容错方面的优势?

【问题讨论】:

  • 您的问题令人困惑。您是否在问是否可以衡量服务的一般可用性?答案是肯定的。或者您是否在问如何从成本方面衡量高可用性对业务的好处?非常不清楚。
  • One of the Microservices Architecture benefit is Fault Tolerant - 不完全是,Cascade failures 怎么样?默认情况下,微服务不具备弹性。

标签: microservices


【解决方案1】:

与使用微服务或其他架构风格相比,容错或弹性与您的内部应用架构有关。例如 - 如果您将具有内部错误处理和回退策略的结构良好的单体与一堆设计为相互依赖但没有内置弹性的微服务进行比较,那么这些微服务将更有可能一起失败。

这里有一些关于如何构建弹性系统的想法:

  1. 避免相互依赖。最重要,但并不总是可能的。
  2. 使用具有内置自我修复功能的基础架构,例如 Kubernetes。
  3. 使用具有内置弹性的 API 网关,例如 Zuul。
  4. 使用专门的库通过承诺和断路器进行弹性调用。比如 Hystrix。
  5. 在流​​处理器(如 Kafka)中缓存请求,以防止负载峰值和间歇性服务故障。
  6. 将您的 API 设计为幂等的。

当您要求测量容错能力时,您应该考虑应用程序的自动化测试。例如,您可以为您的应用程序编写使用随机输入/错误输入或超高负载的测试,以试图干扰服务。所以测量/证明容错性确实是测试团队的一项任务。

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 2019-08-25
    • 1970-01-01
    • 2020-10-14
    • 2020-02-04
    • 2017-12-31
    • 1970-01-01
    • 2018-07-28
    • 2018-09-27
    相关资源
    最近更新 更多