当前位置: 首页 > article >正文

实现一键不同环境迁移ES模板

实现概述:

1、查询环境A模板信息

2、获取模板信息值转换

3、同步保存至环境B

package com.jayce.boot.route.common.util;

import com.fasterxml.jackson.databind.JsonNode;
import com.google.common.collect.Lists;
import com.jayce.boot.route.common.util.superClient.JsonUtil;
import com.jayce.boot.route.common.util.superClient.SuperClientUtil;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 实现ES模板从环境A,同步到B
 *
 * @author sunjie
 * @datetime 2025/3/8 10:51
 **/
public class EsTemplateSyncUtil {
    public static void main(String[] args) {
        List<String> taskList = Lists.newArrayList("tempalte1",
                "tempalte2",
                "tempalte3");

        for (String taskNo : taskList) {
            sync(taskNo);
        }
    }

    public static Boolean sync(String templateName) {
        //查询模板
        try {
            System.out.println(">>>>>>>>>>>>>>>>>>" + templateName + " GET TEMPLATE");
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic xxxxxxx");
            JsonNode jsonNode = SuperClientUtil.ipHttpGet("http://环境A:9200", "/_template/" + templateName, header);
            System.out.println(jsonNode);

            //解析参数
            Map<String, Object> map = JsonUtil.nodeToEntity(jsonNode, Map.class);
            Object paramObj = map.get(templateName);

            //同步到新环境
            Map<String, String> header2 = new HashMap<>();
            header2.put("Authorization", "Basic xxxxxxx");
            templateName = templateName.replace("*", "");
            JsonNode jsonNode2 = SuperClientUtil.ipHttpPost("http://环境B:9200", "/_template/" + templateName, JsonUtil.toJsonString(paramObj), header2);
            System.out.println("ES response:" + jsonNode2);
            System.out.println("<<<<<<<<<<<<<<<<<<" + templateName + " SYNC SUCCESS!");
        } catch (Exception e) {
            System.out.println("<<<<<<<<<<<<<<<<<<" + templateName + " SYNC FAIL!!!!!!!!");
        }
        return true;
    }
}


http://www.kler.cn/a/579580.html

相关文章:

  • Mysql配置文件My.cnf(my.ini)配置参数说明
  • 如何判断住宅IP与机房IP的方法
  • 双击PPT文件界面灰色不可用,需要再次打开该PPT文件才能正常打开
  • vue基本功
  • ubuntu22.04安装RAGFlow配合DeepSeek搭建本地知识库
  • 论文阅读_角色扮演综述从人格化到个性化
  • leetcode 2070. 每一个查询的最大美丽值 中等
  • 物联网中如何解决数据安全的问题
  • 【网络安全 | 漏洞挖掘】通过JWT的IDOR实现账户接管
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_modules
  • 清华北大推出的 DeepSeek 教程(附 PDF 下载链接)
  • MySql的in和join对比谁更高效
  • Android中的ViewPager是什么以及有哪些用途
  • Terraform 中安全地更改 EC2 实例 instance_type 的指南
  • 【Linux】外接硬盘管理
  • 基于Prometheus+Grafana的Deepseek性能监控实战
  • 更新vscode ,将c++11更新到c++20
  • Meta 计划在 Llama 4 中引入改进的语音功能,接近双向自然对话
  • 小程序 wxml 语法 —— 38 setData() - 修改数组类型数据
  • [20250304] 关于 RISC-V芯片 的介绍