当前位置: 首页 > 知识库问答 >
问题:

如何理解spring boot应用程序已经准备好工作了?

严知
2023-03-14

共有1个答案

弘焕
2023-03-14

有人知道我如何确定Spring启动应用程序的启动时间吗?

当应用程序从/healthendpoint返回code200时,它必须准备好

{
  "status": "UP"
}

这意味着您的应用程序没有问题,可以正常工作,无论如何,监控应用程序通常使用此endpoint来了解您的应用程序的健康状况,以便维护集群,此endpoint不常被其他应用程序使用,此监视器通常

    null
compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: '1.5.10.RELEASE'

微服务试图在配置服务器初始化之前从它获取配置....

这里有几个要点要说清楚

  • docker compose不授予启动顺序,除非您使用depends_on子句,无论如何,docker永远不会等待第一个容器完全启动(使用healthcheck的事件)然后启动第二个容器
  • 如果您的微服务A依赖于微服务B,那么A必须准备好处理B的故障和不可用,这是一个微服务前提,因为它会在某一天甚至更糟的时候发生,而它不应该发生。配置服务器在某个时刻重新启动怎么办?依赖的应用程序会发生什么?
    null
    null

config-server将比app-1需要更长的时间来准备,那么app-1将保持不健康状态,直到config-server正确响应

version: '3.4'
services:
  mg-config-server:
    image: nginx:1.10
    healthcheck:
      test: ["CMD", "bash", "-c", "sleep 15; exit 0"]
      interval: 10s
      timeout: 17s
      retries: 3
      start_period: 10s
    networks:
      - my-net
    command: bash -c "echo starting; sleep 20; nginx -g 'daemon off;'"

  mg-app-1:
    image: alpine:3.7
    healthcheck:
      test: ["CMD", "curl", "http://mg-config-server"]
      interval: 5s
      timeout: 5s
      retries: 3
      start_period: 1s
    command: sh -c 'echo starting; apk add --update curl; tail -f /dev/null'
    restart: always
    networks: 
      - my-net
    dns:
    - 8.8.8.8

networks:
  my-net:
    driver: overlay

那就开始吧

docker-compose up
docker ps | grep "mg" 

无论如何,在这种情况下使用docker swarm更有意义,因为它将检查healthcheckendpoint,如果它不健康,则重新启动容器

docker swarm init --advertise-addr <your-machine-ip>
docker stack deploy --compose-file docker-compose.yml my-stack && docker ps | grep "my-stack"
 类似资料:
  • 我有下面的代码,我想在它上面关闭preparedStatement对象,因为它是作为一个来自sonar的bug提出的。 如何关闭preparedStatement对象?我看到的大多数示例大多使用try/finally或try with resources,然后创建对象并使用它try and close in finally。然而,在这里,对象是在单独的函数中创建的,它从那里返回,然后被使用。所以创

  • 前言 到最后一节来写“开篇”,确实有点古怪。不过,在第一篇(数值操作)的开头实际上也算是一个小的开篇,那里提到整个系列的前提是需要有一定的 Shell 编程基础,因此,为了能够让没有 Shell 编程基础的读者也可以阅读这个系列,我到最后来重写这个开篇。开篇主要介绍什么是 Shell,Shell 运行环境,Shell 基本语法和调试技巧。 什么是 Shell 首先让我们从下图看看 Shell 在整

  • 现在你知道使用Kotlin实现的小例子了,我确信你会希望尽可能快地把它用在你的实践当中去。不要担心,在第一章中会帮助你去搭建你的开发环境,这样你才能立即编写代码。

  • Note 本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。 在开始真正写游戏机制之前,我们首先需要配置一个简单的框架,用来存放这个游戏,这个游戏将会用到几个第三方库,它们的大多数都已经在前面的教程中介绍过了。在需要用到新的库的时候,我会作出适当的介绍。 首先,我们定义一个所谓的超级(Uber)游戏类,它会包含所有相关的渲染

  • 命令行界面还是图形界面? Git 提供两种主要的工作环境: “命令行界面” 或者一个 “GUI” 应用程序。使用哪一种界面都无所谓正确或错误。 在一方面,使用 GUI 应用程序会让你更有效和方便地使用一些复杂或者先进的功能。但这些复杂操作在命令行界面就显得过于复杂了。 在另一方面,我还是建议你首先来学习 Git 的命令,这样可以帮助你更进一步地了解一些重要的基础工作原理,而且不需要倚赖于任何一个图

  • 听说你正在准备极智嘉算法工程师面试,但是却无从下手?不知道怎样准备才能赢得面试官的“芳心”? 不要担心,极智嘉校招Tips专为你破解校招难题!有想问的,想听的,也可以在评论区留言! 话不多说,成功上岸极智嘉的小G为你奉上第二讲干货:如何准备好算法工程师岗位面试? 准备极智嘉算法工程师面试,你需要... 算法能力: 应该熟练掌握常见的算法并且能够快速的写出来,要知道,面试官可是没有太多的时间等你来写