【问题标题】:Scaling spring boot applications dynamically动态缩放 Spring Boot 应用程序
【发布时间】:2018-08-03 03:06:24
【问题描述】:

spring cloud 中有什么东西可以检测到失败的 spring boot 进程并重新启动它吗?(在少数情况下,WebLogic 节点管理器会检测到故障并重新启动 JVM。不是 hystrix )另外,在 Linux 机器上动态扩展或缩小 spring boot 实例。我已经看到了可以动态扩展或缩减的 kubernetes pod。

【问题讨论】:

  • 不,spring cloud中没有那种看门狗进程
  • 谢谢,在 Spring Cloud 之外处理它的最佳方法是什么。我想编写 bash 脚本来监控使用 supervisord 来扩大或缩小规模。尝试看看是否还有其他可能的选择。
  • 考虑使用 Kubernetes 来扩展应用程序的容器。这也使您的应用程序代码保持干净,有利于更好的本地功能可测试性。
  • 对于Java应用程序的看门狗,你可以看看并评估一下Tanuki Java Service Wrapper。它允许将 Java 应用程序作为操作系统服务运行,以及一个看门狗 Java 进程以可配置的时间间隔 ping 您的 Java 应用程序。

标签: spring-boot spring-cloud spring-cloud-netflix


【解决方案1】:

Spring 提供了报告可检测到的故障模式的方法,这取决于您的服务编排技术来处理该信息。

执行器/health 端点旨在检测有问题的服务。它的工作原理是聚合不同 bean 提供的健康状态,包括您定义的那些,对它们进行排序并从排序列表中选择最严重的作为“整体”状态。

默认实现中的可能状态为 DOWNOUT_OF_SERVICEUP,但您可以替换它们以及替换整体状态的选择方式。

作为服务编排的一个示例,kubernetes 支持针对您正在运行的 pod 运行的定期 liveness 检查。如果检查未能进行 HTTP 调用(无响应的 JVM)、返回 HTTP 错误或返回状态为DOWN200,我们已对此进行了编程以反弹我们的服务器。

【讨论】:

    猜你喜欢
    • 2017-08-19
    • 2018-01-30
    • 2020-12-31
    • 1970-01-01
    • 2020-05-01
    • 2018-01-21
    • 2020-12-05
    • 2019-11-22
    • 2019-12-08
    相关资源
    最近更新 更多