电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

java連接ElasticSearch集群操作

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

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

/* *es配置類 * */ @Configurationpublic class ElasticSearchDataSourceConfigurer { private static final Logger LOG = LogManager.getLogger(ElasticSearchDataSourceConfigurer.class); @Bean public TransportClient getESClient() { //設置集群名稱 Settings settings = Settings.builder().put('cluster.name', 'bigData-cluster').put('client.transport.sniff', true).build(); //創建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));// 一萬條插入一次if (i % 10000 == 0) {bulkRequest.execute().actionGet();}System.out.println('已經插入第' + i + '多少條');} }

補充知識:使用java創建ES(ElasticSearch)連接池

1.首先要有一個創建連接的工廠類

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連接池工廠對象 * @author 00000 * */public class EsClientPoolFactory implements PooledObjectFactory<RestHighLevelClient>{ @Overridepublic void activateObject(PooledObject<RestHighLevelClient> arg0) throws Exception {System.out.println('activateObject');}/** * 銷毀對象 */@Overridepublic void destroyObject(PooledObject<RestHighLevelClient> pooledObject) throws Exception {RestHighLevelClient highLevelClient = pooledObject.getObject();highLevelClient.close();}/** * 生產對象 *///@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 {// 對象池配置類,不寫也可以,采用默認配置private static GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();// 采用默認配置maxTotal是8,池中有8個clientstatic {poolConfig.setMaxTotal(8);}// 要池化的對象的工廠類,這個是我們要實現的類private static EsClientPoolFactory esClientPoolFactory = new EsClientPoolFactory();// 利用對象工廠類和配置類生成對象池private static GenericObjectPool<RestHighLevelClient> clientPool = new GenericObjectPool<>(esClientPoolFactory,poolConfig); /** * 獲得對象 * * @return * @throws Exception */public static RestHighLevelClient getClient() throws Exception {// 從池中取一個對象RestHighLevelClient client = clientPool.borrowObject();return client;} /** * 歸還對象 * * @param client */public static void returnClient(RestHighLevelClient client) {// 使用完畢之后,歸還對象clientPool.returnObject(client);}}

以上這篇java連接ElasticSearch集群操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 连栋温室大棚建造厂家-智能玻璃温室-薄膜温室_青州市亿诚农业科技 | 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 冷镦机-多工位冷镦机-高速冷镦机厂家-温州金诺机械设备制造有限公司 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 磨煤机配件-高铬辊套-高铬衬板-立磨辊套-盐山县宏润电力设备有限公司 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 多功能干燥机,过滤洗涤干燥三合一设备-无锡市张华医药设备有限公司 | 合肥通道闸-安徽车牌识别-人脸识别系统厂家-安徽熵控智能技术有限公司 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 宿舍管理系统_智慧园区系统_房屋/房产管理系统_公寓管理系统 | 氧化铁红厂家-淄博宗昂化工| 安徽千住锡膏_安徽阿尔法锡膏锡条_安徽唯特偶锡膏_卡夫特胶水-芜湖荣亮电子科技有限公司 | 气动|电动调节阀|球阀|蝶阀-自力式调节阀-上海渠工阀门管道工程有限公司 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 路面机械厂家| 雨燕360体育免费直播_雨燕360免费NBA直播_NBA篮球高清直播无插件-雨燕360体育直播 | MES系统工业智能终端_生产管理看板/安灯/ESOP/静电监控_讯鹏科技 | 热工多功能信号校验仪-热电阻热电偶校验仿真仪-金湖虹润仪表 | 热风机_工业热风机生产厂家上海冠顶公司提供专业热风机图片价格实惠 | 电力测功机,电涡流测功机,磁粉制动器,南通远辰曳引机测试台 | 色谱柱-淋洗液罐-巴罗克试剂槽-巴氏吸管-5ml样品瓶-SBS液氮冻存管-上海希言科学仪器有限公司 | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 304不锈钢无缝管_不锈钢管厂家 - 隆达钢业集团有限公司 | 扬尘在线监测系统_工地噪声扬尘检测仪_扬尘监测系统_贝塔射线扬尘监测设备「风途物联网科技」 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 新型锤式破碎机_新型圆锥式_新型颚式破碎机_反击式打沙机_锤式制砂机_青州建源机械 | 水压力传感器_数字压力传感器|佛山一众传感仪器有限公司|首页 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 建筑消防设施检测系统检测箱-电梯**检测仪器箱-北京宇成伟业科技有限责任公司 | 微信聊天记录恢复_手机短信删除怎么恢复_通讯录恢复软件下载-快易数据恢复 | 乐考网-银行从业_基金从业资格考试_初级/中级会计报名时间_中级经济师 | 脑钠肽-白介素4|白介素8试剂盒-研域(上海)化学试剂有限公司 | 百度关键词优化_网站优化_SEO价格 - 云无限好排名 | 高楼航空障碍灯厂家哪家好_航空障碍灯厂家_广州北斗星障碍灯有限公司 | 磁力抛光研磨机_超声波清洗机厂家_去毛刺设备-中锐达数控 | 深圳宣传片制作_产品视频制作_深圳3D动画制作公司_深圳短视频拍摄-深圳市西典映画传媒有限公司 | 天津暖气片厂家_钢制散热器_天津铜铝复合暖气片_维尼罗散热器 |