从运行结果看并没有打印节点信息出来

从结果看出来,集群节点信道打印出来了,不过这种方法有个问题,就是当我们连接的节点挂掉了,就没法连接整个集群了,这个时候我们就利用他的一个嗅探的功能。

从这里我们可以看到,通过嗅探功能把集群的三个节点都打印出来了

实际上我们只传入master节点,但是同过master节点探测到其他两个节点信息

但是但应用重启之后master节点挂掉了就不能连接集群了,为了防止容错性,我们就多设置几个节点

参考代码ESTestClient.java

 package com.dajiangtai.djt_spider.elasticsearch;

 import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.List; import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.junit.Before;
import org.junit.Test;
/**
* 获取TransportClient
* @author 大讲台
*
*/
public class ESTestClient { /**
* 测试使用Java API 连接ElasticSearch 集群
*
* @throws UnknownHostException
*/
@Test
public void test1() throws UnknownHostException {
// on startup
// 获取TransportClient
TransportClient client = TransportClient
.builder()
.build()
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("master"), 9300)); List<DiscoveryNode> connectedNodes = client.connectedNodes();
for (DiscoveryNode discoveryNode : connectedNodes) {
System.out.println("集群节点:"+discoveryNode.getHostName());
}
// on shutdown
client.close();
} /**
* 生成环境下,ElasticSearch集群名称非默认需要显示设置
*
* @throws UnknownHostException
*/
@Test
public void test2() throws UnknownHostException {
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "escluster").build();
// on startup
// 获取TransportClient
TransportClient client = TransportClient
.builder()
.settings(settings)
.build()
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("master"), 9300)); List<DiscoveryNode> connectedNodes = client.connectedNodes();
for (DiscoveryNode discoveryNode : connectedNodes) {
System.out.println("集群节点:"+discoveryNode.getHostName());
} // on shutdown
client.close();
} /**
* 1、启动应用程序之后,client.transport.sniff能保证即使master挂掉也能连接上集群
* 2、master节点挂机同时应用程序重启,则无法连接ElasticSearch集群
*
* @throws UnknownHostException
*/
@Test
public void test3() throws UnknownHostException { // 开启client.transport.sniff功能,探测集群所有节点
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "escluster")
.put("client.transport.sniff", true).build();
// on startup
// 获取TransportClient
TransportClient client = TransportClient
.builder()
.settings(settings)
.build()
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("master"), 9300)); List<DiscoveryNode> connectedNodes = client.connectedNodes();
for (DiscoveryNode discoveryNode : connectedNodes) {
System.out.println("集群节点:"+discoveryNode.getHostName());
} // on shutdown
client.close();
} /**
* 1、启动应用程序之后,client.transport.sniff能保证即使master挂掉也能连接上集群
* 2、设置多节点,防止其中一个节点挂机同时应用程序重启,无法连接ElasticSearch集群问题
*
* @throws UnknownHostException
*/
@Test
public void test4() throws UnknownHostException { // 开启client.transport.sniff功能,探测集群所有节点
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "escluster")
.put("client.transport.sniff", true).build();
// on startup
// 获取TransportClient
TransportClient client = TransportClient
.builder()
.settings(settings)
.build()
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("master"), 9300))
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("slave1"), 9300))
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("slave2"), 9300)); List<DiscoveryNode> connectedNodes = client.connectedNodes();
for (DiscoveryNode discoveryNode : connectedNodes) {
System.out.println("集群节点:"+discoveryNode.getHostName());
} // on shutdown
client.close();
}
}

ElasticSearch client API的更多相关文章

  1. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十)ES6.2.2 Client API

    scala版本2.11 java版本1.8 spark版本2.2.1 es版本6.2.2 hadoop版本2.9.0 elasticsearch节点列表: 192.168.0.120 192.168. ...

  2. Elasticsearch Java Rest Client API 整理总结 (一)——Document API

    目录 引言 概述 High REST Client 起步 兼容性 Java Doc 地址 Maven 配置 依赖 初始化 文档 API Index API GET API Exists API Del ...

  3. Elasticsearch Java Rest Client API 整理总结 (二) —— SearchAPI

    目录 引言 Search APIs Search API Search Request 可选参数 使用 SearchSourceBuilder 构建查询条件 指定排序 高亮请求 聚合请求 建议请求 R ...

  4. Elasticsearch Java Rest Client API 整理总结 (三)——Building Queries

    目录 上篇回顾 Building Queries 匹配所有的查询 全文查询 Full Text Queries 什么是全文查询? Match 全文查询 API 列表 基于词项的查询 Term Term ...

  5. Elasticsearch java api操作(二)(Java High Level Rest Client)

    一.说明: 一.Elasticsearch提供了两个JAVA REST Client版本: 1.java low level rest client: 低级别的rest客户端,通过http与集群交互, ...

  6. Elasticsearch java api操作(一)(Java Low Level Rest Client)

    一.说明: 一.Elasticsearch提供了两个JAVA REST Client版本: 1.java low level rest client: 低级别的rest客户端,通过http与集群交互, ...

  7. elasticsearch Java API汇总

    http://blog.csdn.net/changong28/article/details/38445805#comments 3.1 集群的连接 3.1.1 作为Elasticsearch节点 ...

  8. ElasticSearch Java api 详解_V1.0

    /×××××××××××××××××××××××××××××××××××××××××/ Author:xxx0624 HomePage:http://www.cnblogs.com/xxx0624/ ...

  9. [搜索]ElasticSearch Java Api(一) -添加数据创建索引

    转载:http://blog.csdn.net/napoay/article/details/51707023 ElasticSearch JAVA API官网文档:https://www.elast ...

随机推荐

  1. [Scala]Scala学习笔记七 正则表达式

    1. Regex对象 我们可以使用scala.util.matching.Regex类使用正则表达式.要构造一个Regex对象,使用String类的r方法即可: val numPattern = &q ...

  2. 对magento MVC框架的了解

    对magento MVC框架的了解 在做二次开发以来,一直没有好好地去了解magento的MVC架构,以为跟其它的MVC架构一样,其实有着很大的区别. 有很多的程序框架都使用了现在最流行的MVC架构, ...

  3. magento的xml文件解读

    其中显示页面的getChildHtml(’')函数是取xml文件中的block中的name属性的:

  4. 判断颜色信息-RGB2HSV(opencv)

    前言 项目车号识别过程中,车体有三种颜色黑车黑底白字.红车红底白字.绿车黄底绿字,可以通过判断车体的颜色信息,从而判断二值化是否需要反转,主要是基于rgb2hsv函数进行不同颜色的阈值判断. matl ...

  5. requests中获取请求到文本编码格式

    1.使用requests模块: import requests 2.通过网络请求,并获取到数据 url = "http://www.stat-nba.com/award/item14.htm ...

  6. Unity 3D编辑器扩展介绍、教程(一) —— 创建菜单项

    Unity编辑器扩展教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 一 Brief Introduct ...

  7. 自动AC机

    可以在lemon和cena环境下使用. #include<iostream> #include<cstdio> #include<cstring> #include ...

  8. Linux中常用的函数

    1.devm_kzalloc() 函数 devm_kzalloc() 和kzalloc()一样都是内核内存分配函数,但是devm_kzalloc()是跟设备(device)有关的,当设备(device ...

  9. day23 python学习 类 人狗大战

    面向过程 VS 面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 面向过程 优点是:极大的降低了 ...

  10. 使用jsonp进行跨站点数据访问

    使用jsonp 可以解决ajax 的跨域问题,使用起来比较简单. 具体的测试环境搭建如下 1.一个简单的MVC 站点 2.一个简单的html文件(这次的测试是在web 站点中,当然可以是一个简单的ht ...