elasticsearch,docker-compose,centos,Spring Boot,elasticsearch,Docker Compose,Centos" /> elasticsearch,docker-compose,centos,Spring Boot,elasticsearch,Docker Compose,Centos" />

Spring boot 与Java restHighLevelClient的连接被拒绝

Spring boot 与Java restHighLevelClient的连接被拒绝,spring-boot,elasticsearch,docker-compose,centos,Spring Boot,elasticsearch,Docker Compose,Centos,我正在开发一个Spring Boot应用程序,它可以将Oracle数据库批量插入到CentOS 7服务器上托管的Elasticsearch集群。当我使用一些HTTP客户机,比如失眠或邮递员,然后集群状态为200OK的响应时,即使是CURL也不会有问题向服务器发出正确的PUT请求。Spring Boot应用程序无法建立连接 当我在运行Spring Boot应用程序的同一台开发PC上启动docker compose时,批量插入是可以的,但在CentOS服务器上不行 我确信SELinux和firewa

我正在开发一个Spring Boot应用程序,它可以将Oracle数据库批量插入到CentOS 7服务器上托管的Elasticsearch集群。当我使用一些HTTP客户机,比如失眠或邮递员,然后集群状态为200OK的响应时,即使是CURL也不会有问题向服务器发出正确的PUT请求。Spring Boot应用程序无法建立连接

当我在运行Spring Boot应用程序的同一台开发PC上启动docker compose时,批量插入是可以的,但在CentOS服务器上不行

我确信SELinux和firewalld服务在CentOS服务器中已停止。Ping到服务器、外部HTTP客户端请求、CURL请求,所有这些都返回正确的响应

docker-compose.yml

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
    container_name: es01
    environment:
      - node.name=es01
      - discovery.seed_hosts=es02,es03,es04,es05
      - cluster.initial_master_nodes=es01,es02,es03,es04,es05
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
      - http.host=0.0.0.0
      - transport.host=0.0.0.0
      - xpack.security.enabled=false
      - "http.cors.enabled=false"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
      - 9300:9300
    networks:
      - esnet
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
    container_name: es02
    environment:
      - node.name=es02
      - discovery.seed_hosts=es01,es03,es04,es05
      - cluster.initial_master_nodes=es01,es02,es03,es04,es05
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
      - http.host=0.0.0.0
      - transport.host=0.0.0.0
      - xpack.security.enabled=false
      - "http.cors.enabled=false"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata02:/usr/share/elasticsearch/data
    networks:
      - esnet
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
    container_name: es03
    environment:
      - node.name=es03
      - discovery.seed_hosts=es01,es02,es04,es05
      - cluster.initial_master_nodes=es01,es02,es03,es04,es05
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
      - http.host=0.0.0.0
      - transport.host=0.0.0.0
      - xpack.security.enabled=false
      - "http.cors.enabled=false"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata03:/usr/share/elasticsearch/data
    networks:
      - esnet
  es04:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
    container_name: es04
    environment:
      - node.name=es04
      - discovery.seed_hosts=es01,es02,es03,es05
      - cluster.initial_master_nodes=es01,es02,es03,es04,es05
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
      - http.host=0.0.0.0
      - transport.host=0.0.0.0
      - xpack.security.enabled=false
      - "http.cors.enabled=false"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata04:/usr/share/elasticsearch/data
    networks:
      - esnet
  es05:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
    container_name: es05
    environment:
      - node.name=es05
      - discovery.seed_hosts=es01,es02,es03,es04
      - cluster.initial_master_nodes=es01,es02,es03,es04,es05
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
      - http.host=0.0.0.0
      - transport.host=0.0.0.0
      - xpack.security.enabled=false
      - "http.cors.enabled=false"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata05:/usr/share/elasticsearch/data
    networks:
      - esnet

volumes:
  esdata01:
    driver: local
  esdata02:
    driver: local
  esdata03:
    driver: local
  esdata04:
    driver: local
  esdata05:
    driver: local

networks:
  esnet:

弹性搜索配置

package artifact.busquedas.config;
导入org.apache.http.HttpHost;
导入org.elasticsearch.client.RestClient;
导入org.elasticsearch.client.RestHighLevelClient;
导入org.slf4j.Logger;
导入org.slf4j.LoggerFactory;
导入org.springframework.beans.factory.annotation.Value;
导入org.springframework.beans.factory.config.AbstractFactoryBean;
导入org.springframework.context.annotation.Configuration;
@配置
公共类ElasticsearchConfig扩展了AbstractFactoryBean{
私有静态最终记录器LOG=LoggerFactory.getLogger(ElasticsearchConfig.class);
@值(${elasticsearch.host}”)
私有字符串主机;
@值(${elasticsearch.port}”)
专用int端口;
@值(${elasticsearch.cluster name}”)
私有字符串clusterName;
私有RestHighLevelClient RestHighLevelClient;
@凌驾
公共空间销毁(){
试一试{
if(restHighLevelClient!=null){
restHighLevelClient.close();
}
}捕获(最终异常e){
LOG.error(“关闭ElasticSearch客户端时出错:”,e);
}
}
@凌驾
公共类getObjectType(){
返回RestHighLevelClient.class;
}
@凌驾
公共布尔isSingleton(){
返回false;
}
@凌驾
公共RestHighLevelClient createInstance(){
返回buildClient();
}
私有RestHighLevelClient buildClient(){
试一试{
restHighLevelClient=新的restHighLevelClient(
RestClient.builder(
新的HttpHost(主机、端口、“http”));
}捕获(例外e){
LOG.error(例如getMessage());
}
返回restHighLevelClient;
}
}
application.properties文件上的Elasticsearch参数

#Elasticsearch config
    elasticsearch.repositories.enabled=true
    elasticsearch.host=10.10.20.XX
    elasticsearch.port=9200
    elasticsearch.cluster-name=docker-cluster
进行批量插入的Elasticsearch存储库

public-void-bulkInsert(列出新的客户){
试一试{
BulkRequest BulkRequest=新的BulkRequest();
对于(int i=0;i
Spring Boot应用程序返回以下消息:

 "java.net.ConnectException: Conexión rehusada
    at org.elasticsearch.client.RestClient.extractAndWrapCause(RestClient.java:804)
    at org.elasticsearch.client.RestClient.performRequest(RestClient.java:225)
    at org.elasticsearch.client.RestClient.performRequest(RestClient.java:212)
    at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1433)
    at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1403)
    at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1373)
    at org.elasticsearch.client.RestHighLevelClient.bulk(RestHighLevelClient.java:477)
    at artifact.repositorio.RegistroRepositorioElastic.bulkInsert(RegistroRepositorioElastic.java:67)
    at artifact.repositorio.RegistroRepositorioElastic$$FastClassBySpringCGLIB$$9c045f6e.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
    at artifact.repositorio.RegistroRepositorioElastic$$EnhancerBySpringCGLIB$$abc7eab.bulkInsert(<generated>)
    at artifact.busquedas.serviciosImp.NacimientosImplementacion.replicarOracleAElastic(NacimientosImplementacion.java:50)
    at artifact.busquedas.controladores.BusquedaControlador.replicarRegistroCivil(BusquedaControlador.java:33)
    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 org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:836)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException: Conexión rehusada
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
    at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvent(DefaultConnectingIOReactor.java:171)
    at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:145)
    at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:351)
    at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:221)
    at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64)
    ... 1 more
"
“java.net.ConnectException:Conexión rehusada
位于org.elasticsearch.client.RestClient.extractAndWrapCause(RestClient.java:804)
位于org.elasticsearch.client.RestClient.performRequest(RestClient.java:225)
位于org.elasticsearch.client.RestClient.performRequest(RestClient.java:212)
位于org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1433)
位于org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1403)
位于org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1373)
位于org.elasticsearch.client.RestHighLevelClient.bulk(RestHighLevelClient.java:477)
位于artifact.repositorio.registorepositorioelastic.bulkInsert(registorepositoriorelastic.java:67)
在artifact.repositorio.registorrepositorioelastic$$FastClassBySpringCGLIB$$9c045f6e.invoke()处
位于org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
位于org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:163)上
位于org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
位于org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:186)
位于org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
在artifact.repositorio.registorrepositoriorelatic$$EnhancerBySpringCGLIB$$abc7eab.bulkInsert()处
在artifact.busquedas.serviciciosimp.nacimientsimplementacion.Replicatorracleaeltic(nacimientsimplementacion.java:50)中
位于artifact.busqedas.controladores.busqedacontrolador.replicarRegistroCivil(busqedacontrolador.java:33)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
位于org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
位于org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
位于org.springframework.web.servlet.mvc.method.annotation.RequestMappingH