zoukankan      html  css  js  c++  java
  • ElastaticSearch es客户端 TransportClient

    TransportClient

    TransportClient客户端,官方在es 7.0版本中将弃用TransportClient客户端,且在8.0版本中完全移除它.
    es 7.0及以上的版本,请使用 RestHighLevelClient。
    如果项目中使用的es版本不高,可以使用 TransportClient。

    依赖

            <dependency>
                <groupId>org.elasticsearch</groupId>
                <artifactId>elasticsearch</artifactId>
                <version>5.5.1</version>
            </dependency>
            <dependency>
                <groupId>org.elasticsearch.client</groupId>
                <artifactId>transport</artifactId>
                <version>5.5.1</version>
            </dependency>
            <dependency>
                <groupId>org.elasticsearch.plugin</groupId>
                <artifactId>transport-netty4-client</artifactId>
                <version>5.5.1</version>
            </dependency>
    

    初始化TransportClient 客户端

    
    import org.elasticsearch.client.transport.TransportClient;
    import org.elasticsearch.common.settings.Settings;
    import org.elasticsearch.common.transport.InetSocketTransportAddress;
    import org.elasticsearch.transport.client.PreBuiltTransportClient;
    
    import java.net.InetAddress;
    import java.net.UnknownHostException;
    
    
    public class EsTransportClient {
    
        /**
         * 初始化TransportClient 客户端
         *
         * @param clusterName es集群名称
         * @param ip es的ip地址
         * @param port es的端口
         * @return
         */
        public static TransportClient getClient(String clusterName, String ip, int port) {
            Settings settings = Settings.builder()
                    .put("cluster.name", clusterName)
                    .put("client.transport.sniff", true)
                    .build();
    
            TransportClient transportClient = null;
            try {
                transportClient = new PreBuiltTransportClient(settings);
                transportClient.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(ip), port));
                return transportClient;
            } catch (UnknownHostException e) {
                log.error("UnknownHostException exception.");
            }
            return transportClient;
        }
    
    
        /**
         * 多节点的es集群
         * @param nodes 格式为:ip:端口,多个节点用逗号隔开  ,比如 10.123.666.1:9300,10.123.666.2:9300
         * @param clusterName 集群名称
         * @return
         */
        public static TransportClient getClientByNodes(String nodes, String clusterName) {
            String[] hosts = nodes.split(",");
            Settings settings = Settings.builder().put("cluster.name", clusterName)
                    .put("client.transport.sniff", true)
                    .put("client.transport.ping_timeout", "10s")
                    .build();
            TransportClient esClient = null;
    
            try {
                esClient = new PreBuiltTransportClient(settings);
                for (String host : hosts) {
                    String[] hostAndPort = host.split(":");
                    esClient.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(hostAndPort[0]),
                                Integer.parseInt(hostAndPort[1])));
                }
            } catch (NumberFormatException | UnknownHostException e) {
                log.error("getClientByNodes exception.", e);
            }
            return esClient;
        }
    
    }
    
  • 相关阅读:
    冲刺第二阶段(三)
    冲刺第二阶段(二)
    第二阶段——个人工作总结DAY09
    第二阶段——个人工作总结DAY08
    第二阶段——个人工作总结DAY07
    第二阶段——个人工作总结DAY06
    第二阶段——个人工作总结DAY05
    第二阶段——个人工作总结DAY04
    第二阶段——个人工作总结DAY03
    第十五周学习进度条
  • 原文地址:https://www.cnblogs.com/expiator/p/15735701.html
Copyright © 2011-2022 走看看