亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java連接ElasticSearch集群操作

瀏覽:66日期:2022-08-24 13:31:50

我就廢話不多說(shuō)了,大家還是直接看代碼吧~

/* *es配置類 * */ @Configurationpublic class ElasticSearchDataSourceConfigurer { private static final Logger LOG = LogManager.getLogger(ElasticSearchDataSourceConfigurer.class); @Bean public TransportClient getESClient() { //設(shè)置集群名稱 Settings settings = Settings.builder().put('cluster.name', 'bigData-cluster').put('client.transport.sniff', true).build(); //創(chuàng)建client TransportClient client = null; try { client = new PreBuiltTransportClient(settings) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(''), 9300));//集群ip LOG.info('ESClient連接建立成功'); } catch (UnknownHostException e) { LOG.info('ESClient連接建立失敗'); e.printStackTrace(); } return client; } }

/** * Simple to Introduction * * @Description: [添加類] */@Repositorypublic class UserDaoImpl implements userDao { private static final String INDEXNAME = 'user';//小寫private static final String TYPENAME = 'info'; @ResourceTransportClient transportClient; @Overridepublic int addUser(User[] user) {IndexResponse indexResponse = null;int successNum = 0;for (int i = 0; i < user.length; i++) {UUID uuid = UUID.randomUUID();String str = uuid.toString();String jsonValue = null;try {jsonValue = JsonUtil.object2JsonString(user[i]);if (jsonValue != null) {indexResponse = transportClient.prepareIndex(INDEXNAME, TYPENAME, str).setSource(jsonValue).execute().actionGet();successNum++;}} catch (JsonProcessingException e) {e.printStackTrace();} }return successNum;} }

/** *批量插入 */public static void bathAddUser(TransportClient client, List<User> users) { BulkRequestBuilder bulkRequest = transportClient.prepareBulk();for (int i = 0; i < users.size(); i++) {UUID uuid = UUID.randomUUID();String str = uuid.toString(); String jsonValue = null;try {jsonValue = JsonUtil.object2JsonString(users.get(i));} catch (JsonProcessingException e) {e.printStackTrace();}bulkRequest.add(client.prepareIndex('user', 'info', str).setSource(jsonValue));// 一萬(wàn)條插入一次if (i % 10000 == 0) {bulkRequest.execute().actionGet();}System.out.println('已經(jīng)插入第' + i + '多少條');} }

補(bǔ)充知識(shí):使用java創(chuàng)建ES(ElasticSearch)連接池

1.首先要有一個(gè)創(chuàng)建連接的工廠類

package com.aly.util; import org.apache.commons.pool2.PooledObject;import org.apache.commons.pool2.PooledObjectFactory;import org.apache.commons.pool2.impl.DefaultPooledObject;import org.apache.http.HttpHost;import org.elasticsearch.client.RestClient;import org.elasticsearch.client.RestHighLevelClient; /** * EliasticSearch連接池工廠對(duì)象 * @author 00000 * */public class EsClientPoolFactory implements PooledObjectFactory<RestHighLevelClient>{ @Overridepublic void activateObject(PooledObject<RestHighLevelClient> arg0) throws Exception {System.out.println('activateObject');}/** * 銷毀對(duì)象 */@Overridepublic void destroyObject(PooledObject<RestHighLevelClient> pooledObject) throws Exception {RestHighLevelClient highLevelClient = pooledObject.getObject();highLevelClient.close();}/** * 生產(chǎn)對(duì)象 *///@SuppressWarnings({ 'resource' })@Overridepublic PooledObject<RestHighLevelClient> makeObject() throws Exception {//Settings settings = Settings.builder().put('cluster.name','elasticsearch').build();RestHighLevelClient client = null;try {/*client = new PreBuiltTransportClient(settings) .addTransportAddress(new TransportAddress(InetAddress.getByName('localhost'),9300));*/client = new RestHighLevelClient(RestClient.builder(new HttpHost('192.168.1.121', 9200, 'http'), new HttpHost('192.168.1.122', 9200, 'http'),new HttpHost('192.168.1.123', 9200, 'http'), new HttpHost('192.168.1.125', 9200, 'http'),new HttpHost('192.168.1.126', 9200, 'http'), new HttpHost('192.168.1.127', 9200, 'http'))); } catch (Exception e) {e.printStackTrace();}return new DefaultPooledObject<RestHighLevelClient>(client);} @Overridepublic void passivateObject(PooledObject<RestHighLevelClient> arg0) throws Exception {System.out.println('passivateObject');} @Overridepublic boolean validateObject(PooledObject<RestHighLevelClient> arg0) {return true;}}

2.然后再寫我們的連接池工具類

package com.aly.util; import org.apache.commons.pool2.impl.GenericObjectPool;import org.apache.commons.pool2.impl.GenericObjectPoolConfig;import org.elasticsearch.client.RestHighLevelClient; /** * ElasticSearch 連接池工具類 * * @author 00000 * */public class ElasticSearchPoolUtil {// 對(duì)象池配置類,不寫也可以,采用默認(rèn)配置private static GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();// 采用默認(rèn)配置maxTotal是8,池中有8個(gè)clientstatic {poolConfig.setMaxTotal(8);}// 要池化的對(duì)象的工廠類,這個(gè)是我們要實(shí)現(xiàn)的類private static EsClientPoolFactory esClientPoolFactory = new EsClientPoolFactory();// 利用對(duì)象工廠類和配置類生成對(duì)象池private static GenericObjectPool<RestHighLevelClient> clientPool = new GenericObjectPool<>(esClientPoolFactory,poolConfig); /** * 獲得對(duì)象 * * @return * @throws Exception */public static RestHighLevelClient getClient() throws Exception {// 從池中取一個(gè)對(duì)象RestHighLevelClient client = clientPool.borrowObject();return client;} /** * 歸還對(duì)象 * * @param client */public static void returnClient(RestHighLevelClient client) {// 使用完畢之后,歸還對(duì)象clientPool.returnObject(client);}}

以上這篇java連接ElasticSearch集群操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产二级毛片 | 男人狂躁女人下面视频免费看 | 最近免费中文字幕大全免费版视频 | 亚洲国产精品第一区二区 | japanese护士日本xx丝袜 | 久久99精品久久久久久久野外 | 成人五级毛片免费播放 | 国产免费高清mv视频在线观看 | 黄色影院免费观看 | 久操不卡| 国产网址在线观看 | 国产中文一区 | 欧美一级特黄毛片视频 | 欧美视频日韩视频 | 亚洲人成在线观看男人自拍 | 哦哦哦用力视频在线观看 | 国模福利视频在线播放 | 国产一级毛片大陆 | 久热中文字幕在线观看 | 国产精品第五页 | 国产igao激情在线观看 | 久久精品免费观看视频 | 在线日韩麻豆一区 | 黄色在线免费 | 婷婷黄色片 | 久久精品中文字幕一区 | 妞干网这里只有精品 | 福利一区二区三区视频在线观看 | 超级乱淫片67194免费看 | 国产91在线播放中文 | 一区国产视频 | 一级黄色片大全 | 毛片软件 | 国产一级做a爰片久久毛片男 | 在线观看黄a | 久久 在线播放 | 久久国产精品99精品国产 | 香蕉成人啪国产精品视频综合网 | 天天操夜夜逼 | 三级黄色小视频 | 成人淫片免费视频95视频 |