• ElasticSearch java api -单例模式


    //单例模式
    private static Settings getSettingInstance(){
    if(settings==null){
    synchronized (Settings.class) {
    if(settings==null){
    settings = ImmutableSettings.settingsBuilder()
    // client.transport.sniff=true
    // 客户端嗅探整个集群的状态,把集群中其它机器的ip地址自动添加到客户端中,并且自动发现新加入集群的机器
    .put("client.transport.sniff", true).put("client", true)// 仅作为客户端连接
    .put("data", false).put("cluster.name", clustername)// 集群名称
    .build();
    }
    }
    }
    return settings;
    }
    //单例模式
    private static TransportClient client;
    private static TransportClient getIstance() {
    if (client == null) {
    //同步代码块(对象未初始化时,使用同步代码块,保证多线程访问时对象在第一次创建后,不再重复被创建)
    synchronized (TransportClient.class) {
    if (client == null) {
    client = new TransportClient(getSettingInstance()).addTransportAddress(new InetSocketTransportAddress(hostname, Integer.parseInt(port1)))// TCP
    // 连接地址
    .addTransportAddress(new InetSocketTransportAddress(hostname, Integer.parseInt(port2)));
    }
    }
    }
    return client;
    }
    /**
    * 创建索引 写入elasticsearch
    *
    * @param jsonlist
    * 要创建索引的jsonlist数据
    */
    public static void createIndex(List<JSONObject> jsonlist) {
    searchRequestBuilder = getIstance().prepareSearch(index);
    try {
    // 创建索引
    for (int i = 0; i < jsonlist.size(); i++) {
    IndexResponse indexResponse = client.prepareIndex(index, type, jsonlist.get(i).getString("id")).setSource(jsonlist.get(i).toString())
    .execute().actionGet();
    if (indexResponse.isCreated()) {
    System.out.println("创建成功!");
    } else {
    System.out.println("创建失败!");
    }
    }
    }
    catch (Exception e) {
    e.printStackTrace();
    }

    }

  • 相关阅读:
    效果超酷的textarea的输入字数限提示
    【设计模式(七)】结构型模式之桥接模式
    【设计模式(六)】适配器模式
    【设计模式(四)】原型模式
    【设计模式(三)】工厂模式
    【设计模式(二)】单例模式
    【设计模式(一)】设计模式概览与六大设计原则
    【算法刷题】无重复字符的最长子串
    【算法刷题】全排列 II
    【算法刷题】LRU缓存模拟
  • 原文地址:https://www.cnblogs.com/coderdxj/p/7238836.html
Copyright © 2020-2023  润新知