zoukankan      html  css  js  c++  java
  • Elasticsearch 连接ES的两种方式

    1、创建客户端节点来连接:

    其中client(true)将node指定为客户端节点,所以这个不能写漏掉,客户端节点是不持有数据的,

    Java代码  收藏代码
    1. Node node = NodeBuilder.nodeBuilder().clusterName(clusterName).client(true)  
    2.            .node();  
    3. Client client = node.client();   

    优势:

           通过此方式创建客户端能知道所有关于集群、索引、分片的信息,在操作上可以更快的执行。 

    不足之处:

           启动时客户端节点必须加入集群并建立与其他节点的连接,此过程需要消耗时间和资源。

           当ES集群处于另一个局域网中时就不行了,所以一般不建议使用此方式。

    2、使用传输机客户端来连接(即使用TransportClient来创建):

    Java代码  收藏代码
    1. Settings settings = Settings.builder().put("cluster.name",clusterName).build();  
    2. client = TransportClient.builder().settings(settings).build();  
    3. client.addTransportAddress(new InetSocketTransportAddress(  
    4.                            InetAddress.getByName(host), port));  

    优势:

           启动速度快,不需要像前者那么多的socket连接。

    不足之处:

           因为它不想前者那样知道集群、索引、分片的这些信息,所以在分发数据和查询上没前者快,不能直接发送到指定的节点或直接从某个节点去取数据,需要ES在其中进行一些额外的转发才能完成。      

    TransportClient类的可用配置:

    client.transport.sniff:默认值为false,当设置为true时,ES会读取集群中的节点信息。

    client.transport.ignore_cluster_name:默认值为false,当设置为true时,ES会忽视配置中的集群名称并尝试连接到某个可连接集群上,而不管集群名称是否匹配。

    client.transport.ping_timeout:默认为5s,此参数指定了ping命令响应的超时时间。

    client.reansport.nodes_sampler_interval:默认为5s,此参数指定了检查节点可用性的时间间隔。

  • 相关阅读:
    vue-cli 2.x 项目优化之:引入本地静态库文件
    关联本地文件夹到 GitLab 项目
    react 子组件访问父组件的方法
    vue 和 react 组件间通信方法对比
    mobx-state-tree 知识点
    vue 下实现 echarts 全国到省份的地图下钻
    TweenMax 动画库,知识点
    mobx 知识点
    highcharts 知识点
    dependencies、devDependencies、webpack打包 的区别与联系
  • 原文地址:https://www.cnblogs.com/a-du/p/13329367.html
Copyright © 2011-2022 走看看