package com.gzzn.omms.adminapi.elasticsearch; import java.net.InetAddress; 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; @Configuration public class ElasticsearchConfig { private static final Logger LOGGER = LoggerFactory.getLogger(ElasticsearchConfig.class); @Value("${elasticsearch.cluster.nodes}") private String nodes; /** * elk集群地址 */ @Value("${elasticsearch.ip}") private String hostName; /** * 端口 */ @Value("${elasticsearch.port}") private String port; /** * 集群名称 */ @Value("${elasticsearch.cluster.name}") private String clusterName; /** * 连接池 */ @Value("${elasticsearch.pool}") private String poolSize; /** * Bean name default 函数名字 * * @return */ @Bean(name = "transportClient") public TransportClient transportClient() { LOGGER.info("Elasticsearch初始化开始。。。。。"); TransportClient transportClient = null; try { // 配置信息 Settings esSetting = Settings.builder() .put("cluster.name", clusterName) // 集群名字 .put("thread_pool.search.size", Integer.parseInt(poolSize))// 增加线程池个数,暂时设为5 .build(); // 配置信息Settings自定义 transportClient = new PreBuiltTransportClient(esSetting); String []nodeArr = nodes.split(","); for(String node:nodeArr) { String host; String port; if(node.contains(":")) { host = node.split(":")[0]; port = node.split(":")[1]; } else { host = node; port = "9300";//默认端口 } TransportAddress transportAddress = new TransportAddress(InetAddress.getByName(host), Integer.valueOf(port)); transportClient.addTransportAddresses(transportAddress); }//end for } catch (Exception e) { LOGGER.error("elasticsearch TransportClient create error!!", e); } return transportClient; } }