elasticsearch获取java client实例
来源:互联网 发布:数控g76螺纹编程 编辑:程序博客网 时间:2024/04/26 14:02
一般情况下,我们可以用如下方法获取一个java client。
public Client getTransportClient(){
// 设置client.transport.sniff为true来使客户端去嗅探整个集群的状态,把集群中其它机器的ip地址加到客户端中,
// 这样做的好处是一般你不用手动设置集群里所有集群的ip到连接客户端,它会自动帮你添加,并且自动发现新加入集群的机器。
Settings settings = ImmutableSettings.settingsBuilder().put(m).put("cluster.name",clusterName).put("client.transport.sniff", true).build();
Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress(host, port));
return client;
}
或者 如下方法:
public Client getEmbeddedClient(){
NodeBuilder nodeBuilder = new NodeBuilder();
Node node = nodeBuilder.loadConfigSettings(false).clusterName(clusterName).local(true).node();
// Node node = nodeBuilder.loadConfigSettings(false).clusterName(clusterName).node();
Client client = node.client();
return client;
}
这种在测试环境下没有问题,但是在线上环境下会出问题,会出现内存溢出和超时等问题。
建议采用如下方法获取java client实例
static Map<String, String> m = new HashMap<String, String>();
// 设置client.transport.sniff为true来使客户端去嗅探整个集群的状态,把集群中其它机器的ip地址加到客户端中,
static Settings settings = ImmutableSettings.settingsBuilder().put(m).put("cluster.name",clusterName).put("client.transport.sniff", true).build();
// 创建私有对象
private static TransportClient client;
static {
try {
Class<?> clazz = Class.forName(TransportClient.class.getName());
Constructor<?> constructor = clazz.getDeclaredConstructor(Settings.class);
constructor.setAccessible(true);
client = (TransportClient) constructor.newInstance(settings);
client.addTransportAddress(new InetSocketTransportAddress(host, port));
} catch (Exception e) {
e.printStackTrace();
}
}
// 取得实例
public static synchronized TransportClient getTransportClient() {
return client;
}
采用java反射的方法生成一个client ,效率明显高于由于new 一个客户端。
- elasticsearch获取java client实例
- elasticsearch获取java client实例
- Elasticsearch java client 获取mapping
- java 获取elasticsearch Client以及 判断是否存在此索引
- elasticsearch java client
- Elasticsearch Java Client入门
- elasticsearch获取client工具类
- Elasticsearch Java Client连接池
- elasticsearch-java api之client
- 连接ElasticSearch获取客户端client时报错
- Elasticsearch Java API 实例
- ElasticSearch java API--创建Client连接
- Elasticsearch[2.0] ☞ Java Client API
- Elasticsearch java API (5)Transport Client
- elasticsearch client java 简单code 应用
- java elasticsearch 5.4.0 x-pack client
- elasticsearch for java【教程一Client】
- 使用Java Rest Client操作Elasticsearch
- iOS 开发者必不可少的 75 个工具
- 黑马程序员——封装之set与get
- Android Fragment 真正的完全解析(下)
- Eclipse 國際化 插件的 下載路徑
- 为GridView添加HeaderView
- elasticsearch获取java client实例
- 《javascript高级程序设计》——模仿块级作用域
- 登录界面 Android简单http get请求(含服务器端)五 iOS端(特别篇)
- js的Prototype属性 解释及常用方法
- android 项目R文件丢失解决办法
- android studio 报Gradle project sync failed. Please fix your project and try again.错误的解决办法
- 动态链表体验2
- Android assests 应用自带apk安装方法
- Android Fragment 真正的完全解析(上)