Spring Elasticsearch - 没有配置的节点可用

时间:2016-08-26 20:00:17

标签: spring elasticsearch jhipster

我在Elasticsearch中使用spring-boot。该项目是使用jhipster创建的。

pom.xml包含:

<parent>
  <artifactId>spring-boot-starter-parent</artifactId> 
  <groupId>org.springframework.boot</groupId>
  <version>1.4.0.RELEASE</version>
  <relativePath/>
</parent>

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

在生产模式下,会发生以下错误:

AbstractElasticsearchRepository : failed to load elasticsearch nodes :    
org.elasticsearch.client.transport.NoNodeAvailableException: None of  
the configured nodes are available: [{#transport#-1}{127.0.0.1}
{localhost/127.0.0.1:9300}]

如何解决此错误?

4 个答案:

答案 0 :(得分:5)

在开发资料中,JHipster使用嵌入式Elasticsearch。

在生产配置文件中,它默认尝试连接到本地群集,因此要么您未在本地计算机上安装Elasticsearch,要么 尚未在application-prod.yml中配置正确的网址以连接到现有群集。

答案 1 :(得分:0)

首先感谢GaëlMarziou。 我在本地计算机上安装了Elasticsearch,但问题仍然存在。所以,这是我的application-prod.yml文件。

# ===================================================================
# Spring Boot configuration for the "prod" profile.
#
# This configuration overrides the application.yml file.
# ===================================================================

# ===================================================================
# Standard Spring Boot properties.
# Full reference is available at:
# http://docs.spring.io/spring-                    
boot/docs/current/reference/html/common-application-properties.html
# ===================================================================


spring:
    devtools:
        restart:
        enabled: false
    livereload:
        enabled: false
datasource:
    type: com.zaxxer.hikari.HikariDataSource
    url: jdbc:postgresql://localhost:5432/gestor_6_0?useUnicode=true&characterEncoding=utf8&useSSL=false
    name:
    username: postgres
    password: abcdef
    hikari:
        data-source-properties:
            cachePrepStmts: true
            prepStmtCacheSize: 250
            prepStmtCacheSqlLimit: 2048
            useServerPrepStmts: true
jpa:
    database-platform: com.everest.gestor.domain.util.FixedPostgreSQL82Dialect
    database: POSTGRESQL
    show-sql: false
    properties:
        hibernate.cache.use_second_level_cache: true
        hibernate.cache.use_query_cache: false
        hibernate.generate_statistics: false
        hibernate.cache.region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
data:
    elasticsearch:
        cluster-name:
        cluster-nodes: localhost:9300
mail:
    host: localhost
    port: 25
    username:
    password:
thymeleaf:
    cache: true

liquibase:
contexts: prod

server:
port: 8080
compression:
    enabled: true
    mime-types: text/html,text/xml,text/plain,text/css, application/javascript, application/json
    min-response-size: 1024

# ===================================================================
# JHipster specific properties
# ===================================================================

jhipster:
http:
    cache: # Used by the CachingHttpHeadersFilter
        timeToLiveInDays: 1461
cache: # Hibernate 2nd level cache, used by CacheConfiguration
    timeToLiveSeconds: 3600
    ehcache:
        maxBytesLocalHeap: 256M
security:
    rememberMe:
        # security key (this key should be unique for your application, and kept secret)
        key: 33ec72f5b6d07e227df6bcad7ca844c50a40abb1
mail: # specific JHipster mail property, for standard properties see MailProperties
    from: gestor_6_0@localhost
metrics: # DropWizard Metrics configuration, used by MetricsConfiguration
    jmx.enabled: true
    spark:
        enabled: false
        host: localhost
        port: 9999
    graphite:
        enabled: false
        host: localhost
        port: 2003
        prefix: gestor_6_0
    logs: # Reports Dropwizard metrics in the logs
        enabled: false
        reportFrequency: 60 # in seconds
logging:
    logstash: # Forward logs to logstash over a socket, used by LoggingConfiguration
        enabled: false
        host: localhost
        port: 5000
        queueSize: 512

答案 2 :(得分:0)

我在ElasticSearchConfiguration.java中更改了我的elasticTemplate方法并且工作正常。我只需添加以下行并将我的群集节点名称设置为&#34; Gibborim&#34;在Elasticsearch 2.0中。

Settings settings = Settings.settingsBuilder()
        .put("client.transport.sniff", true).put("name","Gibborim").put("cluster.name", "elasticsearch").put("network.host","127.0.0.1").build();

    client = TransportClient.builder().settings(settings).build().addTransportAddress(new InetSocketTransportAddress(new InetSocketAddress("127.0.0.1", 9300)));

答案 3 :(得分:0)

如果您使用默认的elasticsearch配置运行jhipster项目,请确保您的elasticsearh服务器版本为1.7,因为jhipster java项目适用于此版本(在生产配置文件中)

在开发简介中存在一个我无法解决的问题