ElasticSearch client API
从运行结果看并没有打印节点信息出来
从结果看出来,集群节点信道打印出来了,不过这种方法有个问题,就是当我们连接的节点挂掉了,就没法连接整个集群了,这个时候我们就利用他的一个嗅探的功能。
从这里我们可以看到,通过嗅探功能把集群的三个节点都打印出来了
实际上我们只传入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的更多相关文章
- 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. ...
- Elasticsearch Java Rest Client API 整理总结 (一)——Document API
目录 引言 概述 High REST Client 起步 兼容性 Java Doc 地址 Maven 配置 依赖 初始化 文档 API Index API GET API Exists API Del ...
- Elasticsearch Java Rest Client API 整理总结 (二) —— SearchAPI
目录 引言 Search APIs Search API Search Request 可选参数 使用 SearchSourceBuilder 构建查询条件 指定排序 高亮请求 聚合请求 建议请求 R ...
- Elasticsearch Java Rest Client API 整理总结 (三)——Building Queries
目录 上篇回顾 Building Queries 匹配所有的查询 全文查询 Full Text Queries 什么是全文查询? Match 全文查询 API 列表 基于词项的查询 Term Term ...
- Elasticsearch java api操作(二)(Java High Level Rest Client)
一.说明: 一.Elasticsearch提供了两个JAVA REST Client版本: 1.java low level rest client: 低级别的rest客户端,通过http与集群交互, ...
- Elasticsearch java api操作(一)(Java Low Level Rest Client)
一.说明: 一.Elasticsearch提供了两个JAVA REST Client版本: 1.java low level rest client: 低级别的rest客户端,通过http与集群交互, ...
- elasticsearch Java API汇总
http://blog.csdn.net/changong28/article/details/38445805#comments 3.1 集群的连接 3.1.1 作为Elasticsearch节点 ...
- ElasticSearch Java api 详解_V1.0
/×××××××××××××××××××××××××××××××××××××××××/ Author:xxx0624 HomePage:http://www.cnblogs.com/xxx0624/ ...
- [搜索]ElasticSearch Java Api(一) -添加数据创建索引
转载:http://blog.csdn.net/napoay/article/details/51707023 ElasticSearch JAVA API官网文档:https://www.elast ...
随机推荐
- C语言基础:指针初级(补充) 分类: iOS学习 c语言基础 2015-06-10 21:54 19人阅读 评论(0) 收藏
结构体指针:指向结构体指针的变量的指针. 结构体指针指向结构体第一个成员变量的首地址 ->: 指向操作符 定义的指针变量必须指向结构体的首地址,才可以使用 -> 访问结构体成员变量 ...
- Sublime 下配置vim模式 + VintageEx-master下载地址
VintageEx-master下载地址: 官方地址:https://github.com/SublimeText/VintageEx 百度云链接: http://pan.baidu.com/s ...
- HDU 1003:Max Sum(DP,连续子段和)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- 三值 bool? 进行与或运算后的结果
bool? 实际上是 Nullable<Boolean> 类型,可以当作三值的 bool 类型来使用.不过三值的布尔进行与或运算时的结果与二值有什么不同吗? 本文内容 重载条件逻辑运算符“ ...
- 【maven】Maven根据Profile读取不同配置环境配置文件
开发需求:在日常开发中,我们大多都会有开发环境(dev).测试环境(test).生产环境(product),不同环境的参数肯定不一样,我们需要在打包的时候,不同环境打不同当包,如果手动改,一方面效率低 ...
- Google Review中Zlib.Portable报错的一种排查解决方案
前几天遇到一个恶心的问题,跟同事一块解决了,在这里记录下过程. 比较懒,直接转他的blog: http://www.cnblogs.com/caochenghua/p/6530053.html 报错信 ...
- LG2023 [AHOI2009]维护序列
题意 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,-,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2)把数列中的一段数 ...
- L5负载均衡
L5负载均衡组件的功能职责 L5的功能特征如下: 名字服务:以SID(由模块ID和命令字ID组成)为关键字,通过SID取得真正的IP和端口地址,使得IP和端口配置对调用者透明,运维变更配置更方便: 负 ...
- hangfire docker-compose 运行
hangfire 是一款基于.net 的任务调度系统 docker-compose 文件 version: '3' services: hangfire: image: direktchark/han ...
- 充电 IC 对 0V 电池充电问题
只讨论锂聚合物电池,由于设置漏电流原因,有些锂电池会放电到 0V(正常是不应该的). 但是在时候就是会发电到 0V,这里就要考虑充电 IC 是否有对 0V 电池充电的功能,还有保护 IC 是否允许 0 ...