package com.sagacloud.repository; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.RandomUtil; import com.sagacloud.util.compute_engine.fjd.ComputeEngineMain; import com.zillion.database.agent.ZillionAgent; import com.zillion.util.common.ZillionConstant; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.List; /** * @author lgy * @date 2022/04/24 17:56 * 查询Hbase的时候,批量范围查询分精度接口无法抗住QPS 100的并发,多节点启动有明显改善的情况下,测试启动多个ZillionAgent验证 */ @Slf4j public class HBaseSaveManagerRepository { private static final List zillionAgentList = new ArrayList<>(); private static final List computeEngineMainList = new ArrayList<>(); public static ZillionAgent randomZillionAgent() { if (zillionAgentList.isEmpty()) { return null; } return RandomUtil.randomEle(zillionAgentList); } public static void init(int zillionAgentCount) { Assert.checkBetween(zillionAgentCount, 1, 20); ZillionConstant.ObserverWait = 0L; for (int i = 0; i < zillionAgentCount; i++) { try { log.warn("----初始化第【{}】个zillionAgent开始----", i + 1); ComputeEngineMain computeEngineMain = new ComputeEngineMain(); ZillionAgent zillionAgent = computeEngineMain.initZillionAgent(); zillionAgentList.add(zillionAgent); computeEngineMainList.add(computeEngineMain); log.warn("----初始化第【{}】个zillionAgent结束----", i + 1); } catch (Exception e) { log.error("----初始化第【{}】个zillionAgent失败:{}----", i + 1, e.getMessage(), e); } } if (!zillionAgentList.isEmpty()) { try { log.warn("----初始化库表开始----"); RandomUtil.randomEle(computeEngineMainList).initDatabaseAndTable(); log.warn("----初始化库表结束----"); } catch (Exception e) { log.error("----初始化库表失败----:" + e.getMessage(), e); } } } }