Kaynağa Gözat

弹性伸缩

dengsixing 2 hafta önce
ebeveyn
işleme
a2c4d08b4f

+ 4 - 1
src/main/java/com/fdkankan/contro/mq/service/impl/BuildSceneServiceImpl.java

@@ -21,6 +21,7 @@ import com.fdkankan.contro.constant.UserEditDataType;
 import com.fdkankan.contro.entity.*;
 import com.fdkankan.contro.mq.service.IBuildSceneService;
 import com.fdkankan.contro.service.*;
+import com.fdkankan.contro.util.EcsScaling;
 import com.fdkankan.contro.util.HttpUtilExt;
 import com.fdkankan.fyun.config.FYunFileConfig;
 import com.fdkankan.fyun.constant.FYunTypeEnum;
@@ -157,6 +158,8 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
     private ScalingService scalingService;
     @Autowired
     private RabbitTemplate rabbitTemplate;
+    @Resource
+    private EcsScaling ecsScaling;
 
 
     @Override
@@ -290,7 +293,7 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
                 Long count = rabbitTemplate.execute(channel -> channel.messageCount("modeling-call-C"));
                 //开启弹性伸缩
                 if(Objects.nonNull(count) && count > 0){
-                    scalingService.createEcs();
+                    ecsScaling.createEcs();
                 }
             }else{
                 mqProducer.sendByWorkQueue(queueModelingCall, message);

+ 53 - 0
src/main/java/com/fdkankan/contro/util/EcsScaling.java

@@ -0,0 +1,53 @@
+package com.fdkankan.contro.util;
+
+import com.alibaba.fastjson.JSON;
+import com.aliyun.ess20220222.models.ExecuteScalingRuleRequest;
+import com.aliyun.ess20220222.models.ExecuteScalingRuleResponse;
+import com.aliyun.teaopenapi.models.Config;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class EcsScaling {
+
+
+    @Value("${scaling.rule.ari}")
+    private String scalingRuleAri;
+
+    @Value("${scaling.accessKeyId:#{null}}")
+    private String accessKeyId;
+
+    @Value("${scaling.accessKeySecret:#{null}}")
+    private String accessKeySecret;
+
+    @Value("${scaling.endPoint:ess.aliyuncs.com}")
+    public String endPoint;
+
+    public void createEcs() throws Exception {
+        com.aliyun.teaopenapi.models.Config config = new Config();
+        config.setAccessKeyId("LTAI5tHbheG3Z9Nx31Q1SJEd");
+        config.setAccessKeySecret("dpDNDlryaixBw4htEgh4P44GrAq2Fg");
+        config.setEndpoint("ess.aliyuncs.com");
+        config.setRegionId("cn-shenzhen");
+
+        com.aliyun.ess20220222.Client client = null;
+        try {
+            client = new com.aliyun.ess20220222.Client(config);
+        } catch (Exception e) {
+            log.error("创建弹性伸缩客户端异常", e);
+        }
+
+        // 创建API请求并设置参数
+        ExecuteScalingRuleRequest executeScalingRuleRequest = new ExecuteScalingRuleRequest();
+        executeScalingRuleRequest.setScalingRuleAri("ari:acs:ess:cn-shenzhen:1899912233141089:scalingrule/asr-wz9f0ovgu3lhqy6p2euh");
+
+        // 发起请求并处理应答或异常
+        ExecuteScalingRuleResponse executeScalingRuleResponse = null;
+        executeScalingRuleResponse = client.executeScalingRule(executeScalingRuleRequest);
+        log.info("启动弹性伸缩结果:{}",JSON.toJSONString(executeScalingRuleResponse));
+    }
+
+
+}