source

스프링 부팅이 시작될 때마다 ElasticSearch 상태 검사가 실패함

ittop 2023. 6. 26. 23:09
반응형

스프링 부팅이 시작될 때마다 ElasticSearch 상태 검사가 실패함

Java Transport Client 라이브러리를 사용하여 Elastic Search 5.5.0에서 Spring boot 1.5.8.RELEASE로 작업하고 있습니다.

탄력적 검색이 컨테이너에 도커와 함께 배포되었습니다.잘 작동합니다.내 자바 애플리케이션의 쿼리도 잘 작동합니다.

문제는 다음과 같이 로컬 컴퓨터에서 Spring 부팅을 시작할 때 Elastic search Health 검사가 거의 매번 실패했다는 것입니다.저는 신청서에 명시적으로 건강 검진을 요청하지 않았습니다.

시작할 때마다 상태 점검을 제거하려면 어떻게 해야 합니까? 또는 상태 점검을 통과할 수 있는 방법이 있습니까?

감사해요.

20180201 09:04:12.499 [restartedMain] INFO c.k.a.Application - Log info On 
20180201 09:04:12.499 [restartedMain] WARN c.k.a.Application - Log warn On 
20180201 09:04:12.499 [restartedMain] ERROR c.k.a.Application - Log error On 
20180201 09:04:15.628 [RMI TCP Connection(9)-10.10.20.187] WARN o.s.b.a.h.ElasticsearchHealthIndicator - Health check failed 
org.elasticsearch.ElasticsearchTimeoutException: java.util.concurrent.TimeoutException: Timeout waiting for task.
    at org.elasticsearch.action.support.AdapterActionFuture.actionGet(AdapterActionFuture.java:71)
    at org.elasticsearch.action.support.AdapterActionFuture.actionGet(AdapterActionFuture.java:58)
    at org.springframework.boot.actuate.health.ElasticsearchHealthIndicator.doHealthCheck(ElasticsearchHealthIndicator.java:52)
    at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:43)
    at org.springframework.boot.actuate.health.CompositeHealthIndicator.health(CompositeHealthIndicator.java:68)
    at org.springframework.boot.actuate.endpoint.HealthEndpoint.invoke(HealthEndpoint.java:85)
    at org.springframework.boot.actuate.endpoint.HealthEndpoint.invoke(HealthEndpoint.java:35)
    at org.springframework.boot.actuate.endpoint.jmx.DataEndpointMBean.getData(DataEndpointMBean.java:46)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
    at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
    at javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1252)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1246)
    at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1085)
    at org.springframework.jmx.export.SpringModelMBean.invoke(SpringModelMBean.java:90)
    at javax.management.modelmbean.RequiredModelMBean.getAttribute(RequiredModelMBean.java:1562)
    at org.springframework.jmx.export.SpringModelMBean.getAttribute(SpringModelMBean.java:109)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:647)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678)
    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1445)
    at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)
    at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:639)
    at sun.reflect.GeneratedMethodAccessor49.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
    at sun.rmi.transport.Transport$1.run(Transport.java:200)
    at sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.concurrent.TimeoutException: Timeout waiting for task.
    at org.elasticsearch.common.util.concurrent.BaseFuture$Sync.get(BaseFuture.java:232)
    at org.elasticsearch.common.util.concurrent.BaseFuture.get(BaseFuture.java:67)
    at org.elasticsearch.action.support.AdapterActionFuture.actionGet(AdapterActionFuture.java:69)
    ... 47 common frames omitted

다음 행을 에 추가하여 Elastic 검색 상태 점검을 비활성화할 수 있습니다.application.xml파일

management.health.elasticsearch.enabled: false

내 스프린트 부트 앱에서도 발생한 동일한 문제를 깊이 조사했을 때 탄력적인 검색 상태 점검이 사용된다는 것을 발견했습니다.org.elasticsearch.client.RestClient하지만 저는 사용하고 있었습니다.org.elasticsearch.client.RestHighLevelClient그리고 같은 것을 위해 빈을 만들었습니다.

반복 탄력적인 검색의 상태 점검을 원하는 경우,
다음을 위한 빈 만들기RestClient올바른 호스트 및 포트를 사용합니다.

또는 app configyml/xml에 다음 항목을 추가하여 상태 점검 자체를 제거합니다.

management.health.elasticsearch.enabled: false

상태 표시기 자동 구성 사용 안 함

@SpringBootApplication(exclude = {        
    ElasticSearchRestHealthIndicatorAutoConfiguration.class
})
public class YourApplication

탄력적인 검색 상태 검사를 사용하지 않습니다.yml/xml 파일에서 이 속성을 언급합니다.

관리.health.sysearch.enabled=false

언급URL : https://stackoverflow.com/questions/48553706/elasticsearch-health-check-failed-every-time-when-spring-boot-start-up

반응형