elasticsearch获取java client实例
来源:互联网 发布:遗传算法实例 编辑:程序博客网 时间:2024/03/29 18:22
转载自:elasticsearch获取java client实例
一般情况下,我们可以用如下方法获取一个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 会创建一个连接池,所以用完后不要关闭,下次可以直接复用。采用单例模式,可以保证应用只产生一个实例。
采用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
- 用C#(Winform)的Timer控件让窗体左右飘动
- C++ 线程安全的 单实例 模式
- Caused by: java.lang.OutOfMemoryError: Java heap space
- Windows内存管理(2)--Lookaside结构 和 运行时函数
- Android 去掉ListView/GridView下拉出空白回弹的效果
- elasticsearch获取java client实例
- nginx中获取真实ip
- JAVA获取本机网卡IP地址
- dgsd
- 笔试/面试题_算法
- 最受欢迎android开源项目---收藏地址
- Windows内存管理(3)--检查内存可用性,结构化异常处理 和 ASSERT
- System.String和System.Text.StringBuilder
- libevent