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(指尖天下),欢迎大伙加入交流学习。
分享到:
相关推荐
原文链接:https://blog.csdn.net/m0_37814112/article/details/122965720 说明:包含elasticsearch7.15.0集群3节点、5节点、7节点等三种方式的K8S部署yaml文件、镜像文件,里面有详细的README.txt部署参考
springboot 2.0.2集成elasticsearch5.5.1,并使用集群模式,亲测可用!!!
ElasticSearch集群部署方式及社会公共信息系统配置文件中es相关参数的修改
elasticsearch集群简单搭建
根据研究和咨询公司大佬 本人搭建的生产环境运行的es集群配置文件,版本6.5.4,操作系统是CentOS7.6 3台es做成的集群,亲测可用。 只需要更改集群名称和每台节点的名称即可使用。
ElasticSearch集群脑裂优化设置,配合博文ES集群优化。
开箱即用,简单粗暴...我们本机启动两个es实例,也就是两个node节点,默认集群名称是elasticsearch,所以他会自动将这两个node凑成一个集群,我们什么都不用配置,它自动发现。shard负载均衡假设我们有1个index,
采用三台CentOS7.2部署Elasticsearch集群,部署Elasticsearch集群就不得不提索引分片,以下是索引分片的简单介绍。
es集群安装包,资源共享,个人安装没问题,可以下载试一下
Elasticsearch集群安装配置
本文档主要以Elasticsearch6.6.2为版本,以Centos7.6为操作系统,详细讲解了ES的集群部署和配置,该文档也支持其他ES其他版本部署配置。原创作者:永远的SSS
一键部署工具实现功能如下: 1、支持单节点部署 2、支持伪集群部署 3、支持分布式集群部署 ...6、支持创建、启动、停止、...说明:工具使用非常简单,只需要修改变量文件,一分钟就可以快速帮你部署elasticsearch集群。
CentOS 7 部署 Elasticsearch7.4 集群并进行安全认证.docx
elasticsearch源码,学习学习
Bigdesk 是 ElasticSearch 的一个集群监控工具,可生成 ElasticSearch 集群的即时图表和统计信息。可以通过它来查看es集群的各种状态,如:cpu、内存使用情况,索引数据、搜索情况,http连接数等。版本对应关系表:...
本篇文章详细记录了CentOS7下Elasticsearch高可用集群方案-完整部署过程,可作为线上长期的实操手册。特在此分享,希望能帮助到有用到的朋友。
学习总结资料
Elasticsearch各个Service作用说明看了不少Elasticsearch的源码,代码结构多且复杂,调用链巨长务必,其中各个xxxService更是
ElasticSearch6集群部署,elasticsearch_head管理,基于CentOS7