springcloud项目集成elasticsearch

Mac环境下 java9.0

1,本机使用的elasticsearch kibana 都是7.0.1

image.png

elasticsearch 配置如下

http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 127.0.0.1
transport.host: 0.0.0.0
cluster.name: my-application
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300"]
cluster.initial_master_nodes: ["node-1"]

2,添加maven依赖

注意如果使用spring-boot-starter-data-elasticsearch 需要注意springboot的版本问题,SpringBoot是2.2.0.RELEASE才兼容elasticsearch 7.x

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

问题记录:

问题1:springboot与spring-boot-starter-data-elasticsearch版本兼容问题
spring boot整合ElasticSearch启动报错信息如下:

None of the configured nodes are available

从日志可以看出,是版本号不兼容的原因。我的springboot版本是2.1.4版本,elasticsearch安装的是7.0.1版本。
所以要么升高springboot版本,要么安装个低版本的elasticsearch。
我选择了升高springboot的版本,在pom.xml中修改了springboot的版本号,改成了2.2.0版本。

等待spring框架更新后启动eureka发现报错了

问题2:springboot启动spring-cloud-netflix-starter-eureka-server问题
eureka启动报错:SpringBoot整合Eureka时启动报错:No qualifying bean of type javax.servlet.Filter available

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type 'javax.servlet.Filter' available: 
expected at least 1 bean which qualifies as autowire candidate.
 Dependency annotations:{@org.springframework.beans.factory.annotation.Qualifier(value=httpTraceFilter)}

查询后发现是eureka版本与springboot版本不对应 springboot使用的是2.2.0然而由于springcloud版本未更新,原因:该启动异常是由于Spring Boot和Spring Cloud版本不相对应导致。需要特别注意的使用Spring Boot和Spring Cloud进行开发时要求Spring Boot 的版本和 Spring Cloud 的版本相对应,如果版本不对应,会遇到很多报错的情况,他们的匹配关系如下:

Spring Cloud Hoxton -->    Spring Boot 2.2.x
Spring Cloud Greenwich -->    Spring Boot 2.1.x
Spring Cloud Finchley -->    Spring Boot 2.0.x
Spring Cloud Edgware -->    Spring Boot 1.5.x

到工程更新springcloud


        org.springframework.cloud
        spring-cloud-dependencies
        Hoxton.SR1
        pom
        import
 

注意:elasticsearch7以上版本不再支持自定义type了,这里需要使用默认的type,一个索引下只有一个type,都叫做_doc
再次启动服务 未报错启动了


image.png

你可能感兴趣的:(springcloud项目集成elasticsearch)