SpringBoot2.x集成Elasticsearch6.3.2,同时配置RestClient和TransportClient
2020-01-13 14:41
851 查看
本文目录
1.Maven(只贴出了部分Maven)
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <elasticsearch.version>6.3.2</elasticsearch.version> </properties> <!-- ES --> <dependencies> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>${elasticsearch.version}</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>${elasticsearch.version}</version> </dependency> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>${elasticsearch.version}</version> </dependency> <dependencies>
2.application.properties
#elasticsearch配置 anshe.elasticsearch.hostlist=${eshostlist:你的IP地址:9200}
3.配置类
package com.anshe.common.config.es; import com.anshe.web.service.ISearchService; import org.apache.http.HttpHost; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.transport.client.PreBuiltTransportClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.net.InetAddress; /** * @author Administrator * @version 1.0 **/ @Configuration public class ElasticsearchConfig { private static final Logger logger = LoggerFactory.getLogger(ISearchService.class); @Value("${anshe.elasticsearch.hostlist}") private String hostlist; @Bean public RestHighLevelClient restHighLevelClient(){ //解析hostlist配置信息 String[] split = hostlist.split(","); //创建HttpHost数组,其中存放es主机和端口的配置信息 HttpHost[] httpHostArray = new HttpHost[split.length]; for(int i=0;i<split.length;i++){ String item = split[i]; httpHostArray[i] = new HttpHost(item.split(":")[0], Integer.parseInt(item.split(":")[1]), "http"); } //创建RestHighLevelClient客户端 return new RestHighLevelClient(RestClient.builder(httpHostArray)); } //项目主要使用RestHighLevelClient,对于低级的客户端暂时不用 @Bean public RestClient restClient(){ //解析hostlist配置信息 String[] split = hostlist.split(","); //创建HttpHost数组,其中存放es主机和端口的配置信息 HttpHost[] httpHostArray = new HttpHost[split.length]; for(int i=0;i<split.length;i++){ String item = split[i]; httpHostArray[i] = new HttpHost(item.split(":")[0], Integer.parseInt(item.split(":")[1]), "http"); } return RestClient.builder(httpHostArray).build(); } @Bean(name = "transportClient") public TransportClient transportClient() { logger.info("Elasticsearch初始化开始。。。。。"); TransportClient transportClient = null; try { // 配置信息 Settings esSetting = Settings.builder() .put("cluster.name", "elasticsearch_anshe") //集群名字 .put("client.transport.sniff", true)//增加嗅探机制,找到ES集群 .build(); //配置信息Settings自定义 transportClient = new PreBuiltTransportClient(esSetting); TransportAddress transportAddress = new TransportAddress(InetAddress.getByName("你的IP地址"), 9300); transportClient.addTransportAddresses(transportAddress); } catch (Exception e) { logger.error("elasticsearch TransportClient create error!!", e); } return transportClient; } }
4.主启动类
package com.anshe; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import tk.mybatis.spring.annotation.MapperScan; @SpringBootApplication @MapperScan(basePackages = "com.anshe.web.mapper") public class AnsheApplication { public static void main(String[] args) { System.setProperty("es.set.netty.runtime.available.processors", "false"); SpringApplication.run(AnsheApplication.class, args); } }
5.整合中的常见报错
Springboot2.x与elasticsearch6.3.2整合报错None of the configured nodes are available
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- springboot 配置elasticsearch Java High Rest Client
- SpringBoot 2.X集成 jdbc自动配置原理探究
- SpringBoot 2.x 从yml文件中读取配置自动解密,同时附上DESUtil
- SpringBoot整合elasticsearch-rest-high-level-client
- Springboot2.0 集成 Elasticsearch 6.x 未添加 transport-netty4-client 依赖 启动时报错
- elasticsearch-windows-配置 及集成springboot-data
- Springboot2.x与elasticsearch6.3.2整合报错None of the configured nodes are available
- Spring boot2.x中集成H2数据库代码实例
- 基于Spring-Boot框架的Elasticsearch搜索服务器配置
- springboot整合elasticserch6.4.3 RestHighLevelClient连接方式
- Spring Boot 集成 Mybatis(druid 数据库连接池 以及 分页配置)
- springboot部署到阿里云,配置https,springboot项目同时支持http和https请求,阿里云配置https
- Springboot集成ecache缓存配置
- Spring boot 集成工作流flowable去掉xml配置
- SpringBoot2.x集成Dubbo及Mybatis详细介绍
- Spring Boot 数据访问集成 MyBatis 与事物配置
- spring boot 2.x 使用druid+ mybatis 配置多数据源
- Spring boot 集成工作流flowable去掉xml配置
- Spring Boot2.0.3 Mybatis Sharding-jdbc3.X集成实现数据库的读写分离(一)MySql的主从配置
- SpringBoot入门-17(springboot集成mybatis注解形式增删查改properties配置)