`
yucang52555
  • 浏览: 70039 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

elasticSearch源码分析之集群连接方式

阅读更多
    elasticsearch提供两种方式连接到集群,一种是通过在你的程序中创建一个嵌入es节点(Node),使之成为es集群的一部分,然后通过这个节点来与es集群通信;另一种则是用TransportClient这个接口和es集群通信。
    首先,我们尝试嵌入节点的方式,有如下三种方式(区别如下注释):
@Test
    public void testDefaultNode(){
        //默认配置(数据节点)启动一个节点,会自动加入同网段的es集群,前提就是es的集群名(cluster.name)参数要设置一致
        //默认状态下es集群会自动给它分配一些索引的分片
        //会加入集群
        Node node = NodeBuilder.nodeBuilder().build();
        Client client = node.client();
        ClusterAdminClient cluster = client.admin().cluster();
        System.out.println(cluster.toString());
        node.close();
    }

@Test
    public void testClientNode(){
        //客户端配置(客户端节点,不保存任何数据)
        //作为一个客户端而不去保存数据,就可以设置把node.data设置成false或 node.client设置成true
        //会加入集群
        Node node = NodeBuilder.nodeBuilder().client(true).node();
        Client client = node.client();
        ClusterAdminClient cluster = client.admin().cluster();
        System.out.println(cluster.toString());
        node.close();
    }

@Test
    public void testLocalNode(){
        //本地节点
        //不会加入集群
        //本地单元测试
        Node node = NodeBuilder.nodeBuilder().local(true).node();
        Client client = node.client();
        ClusterAdminClient cluster = client.admin().cluster();
        System.out.println(cluster.toString());
        node.close();
    }


    第二种方式(TransportClient接口):
@Test
    public void testTransportClient(){
        //可以不启动节点就与es集群通信,只需要指定es集群中其中一台或多台机的ip地址和端口
        Client client = new TransportClient()
                            .addTransportAddress(new InetSocketTransportAddress("192.168.1.135", 9300))
                            .addTransportAddress(new InetSocketTransportAddress("192.168.1.131", 9300))
                            .addTransportAddress(new InetSocketTransportAddress("192.168.1.132", 9300))
                            .addTransportAddress(new InetSocketTransportAddress("192.168.1.133", 9300));
        client.close();
    }

    借此说明一下两个配置参数:
@Test
    public void updateClusterName(){
        //更改集群名
        Settings settings = ImmutableSettings.settingsBuilder()     
                .put("cluster.name", "myClusterName").build();
        Client client = new TransportClient(settings);
        client.close();
    }


@Test
    public void autoDiscoveryNode(){
        //设置client.transport.sniff为true来使客户端去嗅探整个集群的状态,把集群中其它机器的ip地址加到客户端中
        Settings settings = ImmutableSettings.settingsBuilder()   
                .put("client.transport.sniff", true).build();
        Client client = new TransportClient(settings);
        client.close();
    }


程序猿行业技术生活交流群:181287753(指尖天下),欢迎大伙加入交流学习。
0
0
分享到:
评论

相关推荐

    Go-vulcanizer一个用于与Elasticsearch集群交互的golang库

    《Go-vulcanizer:构建Elasticsearch集群交互的Golang工具》 在现代软件开发中,高效的数据管理和检索是至关重要的。Elasticsearch作为一款强大的分布式搜索引擎,因其优秀的性能和易用性而广受开发者青睐。为了更...

    ElasticSearch 源码分析 十三 集群

    在Elasticsearch中,集群(Cluster)是所有节点相互连接并协同工作的核心组成部分。它负责存储、检索和管理数据,并确保整个系统的高可用性和数据一致性。本文将深入探讨Elasticsearch集群的源码分析,特别是关于`...

    ElasticSearch-head插件

    通常,插件安装步骤包括下载源码、配置Elasticsearch的URL、然后运行Grunt命令启动服务。启动后,通过浏览器访问指定的端口即可看到head的界面。 需要注意的是,随着Elasticsearch的发展,官方推荐使用Kibana作为...

    Elasticsearch组件elasticsearch-head-master

    Elasticsearch-head是一个非常实用的Elasticsearch管理工具,它提供了直观的Web界面,便于用户查看、管理和操作Elasticsearch集群。elasticsearch-head-master是该组件的一个版本,它包含了所有必要的源代码和资源,...

    Elasticsearch 5.1.1 java api maven工程 源码下载

    Java API是Elasticsearch与Java应用程序进行交互的主要方式,提供了丰富的类库和方法,使得开发者能够方便地在Java应用中集成Elasticsearch的功能。 在描述中提到的"Elasticsearch 5.1.1 java api maven工程"是指一...

    elasticsearch-head

    2. **获取源码**:从 GitHub 下载 `elasticsearch-head` 源码,或者使用 Git 命令克隆: ``` git clone https://github.com/mobz/elasticsearch-head.git ``` 3. **安装依赖**:进入 `elasticsearch-head` 目录...

    elasticsearch集群

    Elasticsearch 集群是由多个节点(Nodes)组成,这些节点通过网络相互连接,共同存储和处理数据。每个节点都可以是集群的一部分,也可以独立工作。通过设置`cluster.name`配置项,可以将多个节点组成同一个集群。 #...

    elasticsearch5.3.0jdbc源码工程

    **Elasticsearch 5.3.0 JDBC 源码工程详解** Elasticsearch 是一个高性能、可扩展的全文搜索引擎,常用于大数据分析和实时搜索。JDBC (Java Database Connectivity) 则是 Java 平台中用于连接数据库的标准应用编程...

    elasticsearch-head-master.zip

    4. **连接Elasticsearch**:Elasticsearch-Head默认会连接本地的9200端口,如果ES集群在其他主机,需通过URL指定。 5. **访问Web界面**:在浏览器中输入`http://localhost:9100`即可打开Elasticsearch-Head界面,...

    elasticsearch的软件包和部分插件

    Elasticsearch是一款强大的开源搜索引擎,基于Lucene库构建,广泛应用于大数据分析、日志收集、实时搜索等场景。本文将详细介绍文件中包含的Elasticsearch软件包和部分插件,以及它们的功能和用途。 首先,`elastic...

    elasticsearch插件

    安装Elasticsearch-head通常有两种方式:一是作为独立应用运行,二是作为Elasticsearch的插件。从提供的"elasticsearch-head-master"文件来看,这可能是源码版本,用户需要自行编译并运行。具体步骤如下: 1. 解压...

    ElasticSearch Head 插件(浏览器版)

    1. **多集群管理**:Elasticsearch Head 支持同时连接多个集群,只需在界面上添加新的集群URL即可。 2. **安全设置**:如果Elasticsearch集群启用了安全认证,你需要在连接设置中提供用户名和密码。 3. **自定义主题...

    Elasticsearch-Head-Master

    3. **连接Elasticsearch**:在界面上输入Elasticsearch集群的地址,即可连接并查看集群信息。 4. **操作实践**:通过界面进行索引管理和文档操作,体验其便捷性。 **总结:** Elasticsearch-Head-Master 是一个强大...

    SSM框架与ElasticSearch 无缝链接 并提供查询工具类

    2. **Java REST Client**:Elasticsearch官方提供的Java客户端,通过HTTP/JSON接口与ES集群通信,实现对索引、文档的操作。其线程安全特性意味着在多线程环境中可以放心使用,无需额外的同步措施。 将SSM与Elastic...

    【springboot-集成篇】springboot整合ElasticSearch的两种方式(非连接池,附源码)

    在本文中,我们将深入探讨如何将Spring Boot与Elasticsearch集成,主要介绍两种不同的整合方法。Elasticsearch是一个流行的开源搜索引擎,...记得在使用时根据实际情况调整配置,确保与你的Elasticsearch集群正确连接。

    elasticsearch-head插件及教程地址.rar

    Elasticsearch是一个强大的开源搜索引擎和数据分析工具,广泛应用于大数据处理、日志分析、实时监控等领域。而`elasticsearch-head`是专门为Elasticsearch设计的一款Web界面管理插件,它提供了友好的图形化界面,...

    elastic search-head

    6. 配置连接:在浏览器中打开`http://localhost:9100/`(默认端口),输入Elasticsearch集群地址即可连接。 **使用Elasticsearch-Head进行集群管理** 一旦Elasticsearch-Head运行起来,你可以通过其界面进行各种...

    elasticsearch-head-chrome-master.zip

    一旦设置完毕,你可以在浏览器中打开elasticsearch-head,它将连接到你的Elasticsearch集群,并提供以下功能: - **索引管理**:查看和操作索引,包括创建、删除、更新设置等。 - **节点监控**:查看集群中的节点...

    es2.4.1客户端连接修正

    标题“es2.4.1客户端连接修正”指的是在Elasticsearch 2.4.1版本中遇到的客户端连接问题的修复。Elasticsearch(简称ES)是一个分布式、开源的全文搜索引擎,广泛应用于数据存储、搜索和分析。在这个特定的案例中,...

Global site tag (gtag.js) - Google Analytics