Почему одна служба не обрабатывает /actuator/health, а другая очень похожая служба?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему одна служба не обрабатывает /actuator/health, а другая очень похожая служба?

Сообщение Anonymous »

Наша команда поддерживает большое количество архитектурно схожих сервисов SpringBoot. В основном они используют SpringBoot 3.2.5. Мы настраиваем исполнительный механизм «здоровья» для использования в нашем кластере Kubernetes, чтобы убедиться, что служба по-прежнему работоспособна.
Я смотрю на одну службу, которая по какой-то причине получает ошибку 404. при попытке достичь этого URL-адреса. Я сравниваю его с другим сервисом, у которого нет этой проблемы. У меня есть точки останова, установленные в коде пользовательского приложения, который внутренне вызывает исполнительный механизм, а также в коде org.springframework.boot.actuate.health.HealthEndpointWebExtension.health(), который обрабатывает этот вызов исполнительного механизма. Я могу запустить класс Application в «хорошем» сервисе, и он корректно перейдет в обработчик. Я могу запустить класс приложения в «плохой» службе, и он завершается с ошибкой 404 при этом вызове.
Я проверил файлы application.properties в обеих службах. Я отсортировал их оба и сосредоточился на всех свойствах, начиная с управления. Они идентичны.
Я распечатал содержимое толстого jar-файла для каждой службы, сосредоточив внимание на файлах в BOOT-INF/lib. Они определенно разные, потому что делают несколько разные вещи, но ни одно из различий не связано с артефактами Spring.
Я проверил с помощью точек останова, что вызов `/actuator/health' вызывает плохой сервис попадает в сервис, но не находит для него обработчика и возвращает 404.
Я вошел в org.springframework.boot.actuate.autoconfigure.health .HealthEndpointWebExtensionConfiguration.getHealthEndpoint(WebEndpointsSupplier) как с хорошим, так и с плохим сервисом, и я вижу конечную точку работоспособности в списке, и она ее находит. Я не вижу явных различий в данных между плохим сервисом и хорошим сервисом.
На что еще я могу посмотреть, чтобы определить, почему этот обработчик либо неправильно зарегистрирован, либо каким-то образом зарегистрированы с неверным путем?
Обновить:
Чтобы ответить на некоторые вопросы в комментариях:
Я не устанавливал ни server.port, ни Management.server.port в «плохом» сервисе, хотя я устанавливал server.port в «хороший» сервис (до 8080). В качестве эксперимента я попробовал установить «8090» и сделать запрос на 8080, результаты оказались разными. Без изменения порта "curl -v http://..." сообщает об этом:
* Connected to localhost (::1) port 8080
> GET /msapi/actuator HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/8.9.1
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 404
< Content-Length: 0
< Date: Wed, 23 Oct 2024 14:43:06 GMT
<
* Connection #0 to host localhost left intact

Однако, если я изменю свойства порта на 8090, он сообщит следующее:
* Trying [::1]:8080...
* Trying 127.0.0.1:8080...
* connect to ::1 port 8080 from :: port 64398 failed: Connection refused
* connect to 127.0.0.1 port 8080 from 0.0.0.0 port 64399 failed: Connection refused
* Failed to connect to localhost port 8080 after 2269 ms: Could not connect to server
* closing connection #0
curl: (7) Failed to connect to localhost port 8080 after 2269 ms: Could not connect to server

Когда я попытался сделать запрос только к /actuator, он получил ту же ошибку, что и `/actuator/health'.
Хотя мы развертываем эти службы в кластерах k8s, я провожу тестирование этой проблемы, просто запуская ее на своем рабочем столе, поэтому взаимодействия с k8s не происходит.
SPRING_APPLICATION_JSON нигде не установлен.
Я бы включил полные файлы pom.xml и application.properties, но мне придется исключить некоторые из них, в основном потому, что это перешло бы ограничение размера публикации. Я постараюсь удалить только ненужное.
pom.xml:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4.0.0

com.att.idp
sdk-java-parent
2.9.0

com.att.idp.dpl
DPLServiceQualificationMs
0.0.4-SNAPSHOT


${userId}



src/test/groovy
3.7.1
1.6.6
3.0.0-M7
com-att-idp-dpl
UTF-8
**/**/Application.*,
**/**/config/*.*,
**/**/exception/*.*,
**/**/message/*.*,
**/**/model/*.*,
**/com/att/idp/dpl/kafka/producer/CreateMessage.java,
**/com/att/idp/dpl/kafka/producer/Message.java,
**/com/att/idp/dpl/kafka/producer/MessageContext.java,
**/com/att/idp/dpl/kafka/producer/NotifyMeKafkaProducerConfig.java,
**/com/att/idp/dpl/kafka/producer/NotifymeMessage.java,
**/com/att/idp/dpl/db/Errors/ServiceQualMessageHandlerErrors.java,
**/com/att/idp/dpl/service/ParallelExecutionService.java,
**/**/model/swagger/*.*
${basedir}/target/jacoco-it.exec
4.5.4
dockercentral.it.att.com:5100
dplservicequalificationms
2.0.0-SNAPSHOT
17
ajsc-svc-account
2.0.0-SNAPSHOT
com.att.idp
${basedir}/target/jacoco-ut.exec
3.4.14
${basedir}/target/classes/META-INF/resources/swagger
1.18.32




org.spockframework
spock-bom
2.4-M1-groovy-4.0
pom
import






com.att.idp
idp-shutdown-jersey


com.att.idp
idp-shutdown-actuator



com.google.guava
failureaccess
1.0.1



edu.emory.mathcs.backport
com.springsource.edu.emory.mathcs.backport
3.1.0


com.att.idp
rest-api-client


com.att.idp
idp-spring-boot-autoconfigure




com.att.idp
idp-health


com.att.idp
idp-spring-boot-autoconfigure




com.att.idp
soap-api-client


org.drools
drools-core
7.18.0.Final


org.kie
kie-spring
7.18.0.Final


org.projectlombok
lombok
${lombok.version}
provided


org.springframework.data
spring-data-redis


com.att.idp
api-inbound-logging-interceptor


xml-apis
xml-apis




redis.clients
jedis



com.att.idp
idp-spring-boot-autoconfigure
3.7.545-SNAPSHOT


com.att.aft
dme2
3.3.1




org.apache.groovy
groovy-templates
4.0.21


io.projectreactor
reactor-core


org.springframework.boot
spring-boot-starter-data-mongodb


jakarta.xml.bind
jakarta.xml.bind-api
4.0.2


org.apache.httpcomponents
httpclient
4.5.14
compile


io.reactivex.rxjava2
rxjava


io.opentelemetry.instrumentation
opentelemetry-rxjava-2.0
1.31.0-alpha






src/main/resources

**/*



DPLServiceQualificationMs


org.apache.maven.plugins
maven-compiler-plugin

groovy-eclipse-compiler

lombok.launch.Agent

true



org.projectlombok
lombok
${lombok.version}




kr.motd.maven
os-maven-plugin
1.5.0.Final


initialize

detect







Подробнее здесь: https://stackoverflow.com/questions/791 ... ilar-servi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему одна служба не обрабатывает /actuator/health, а другая очень похожая служба?
    Anonymous » » в форуме JAVA
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • Почему одна служба не обрабатывает /actuator/health, а другая очень похожая служба?
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Почему одна служба не обрабатывает /actuator/health, а другая очень похожая служба?
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Почему одна служба не обрабатывает /actuator/health, а другая очень похожая служба?
    Anonymous » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Почему одна служба не обрабатывает /actuator/health, а другая очень похожая служба?
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»