From e9a19e94e98e5a4473ca6e1cdfbd9f9906697d3e Mon Sep 17 00:00:00 2001 From: liuyibo <14460729+liuyibo12345@user.noreply.gitee.com> Date: Sat, 28 Sep 2024 12:28:19 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=BF=9E=E6=8E=A5MQTT,=E6=8E=A5=E6=94=B6?= =?UTF-8?q?=E8=BD=A6=E8=BE=86=E7=9A=84=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WarnLogsController.java | 2 + .../controller/WarnRuleController.java | 2 + .../controller/WarnStrategyController.java | 2 + .../mapper/{warm => warn}/CarTypeMapper.xml | 0 .../{warm => warn}/WarnStrategyMapper.xml | 0 .../cloud-modules-vehicle-gateway/pom.xml | 100 ++++++++++++++++++ .../src/main/java/com/muyu/demo.java | 57 ++++++++++ .../controller/VehicleGatewayController.java | 80 ++++++++++++++ cloud-modules/pom.xml | 1 + 9 files changed, 244 insertions(+) rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/{warm => warn}/CarTypeMapper.xml (100%) rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/{warm => warn}/WarnStrategyMapper.xml (100%) create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/pom.xml create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/demo.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnLogsController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnLogsController.java index 43c91e1..d2ebcfe 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnLogsController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnLogsController.java @@ -7,6 +7,7 @@ import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.enterprise.domain.WarnLogs; import com.muyu.enterprise.service.IWarnLogsService; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -23,6 +24,7 @@ import java.util.List; */ @RestController @RequestMapping("/logs") +@Tag(name = "车辆预警日志",description = "用来记录车辆预警的日志") public class WarnLogsController extends BaseController { @Resource diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnRuleController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnRuleController.java index 3918766..16021da 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnRuleController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnRuleController.java @@ -8,6 +8,7 @@ import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.enterprise.domain.WarnRule; import com.muyu.enterprise.service.IWarnRuleService; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -24,6 +25,7 @@ import java.util.List; */ @RestController @RequestMapping("/rule") +@Tag(name = "车辆预警规则",description = "用来客户添加或者修改规则") public class WarnRuleController extends BaseController { @Resource diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnStrategyController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnStrategyController.java index 900a267..0a4a5c3 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnStrategyController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnStrategyController.java @@ -7,6 +7,7 @@ import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.enterprise.domain.resp.WarnStrategy; import com.muyu.enterprise.service.IWarnStrategyService; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -23,6 +24,7 @@ import java.util.List; */ @RestController @RequestMapping("/strategy") +@Tag(name = "故障策略",description = "故障策略对应车辆类型用来客户选择") public class WarnStrategyController extends BaseController { @Resource diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warm/CarTypeMapper.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warn/CarTypeMapper.xml similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warm/CarTypeMapper.xml rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warn/CarTypeMapper.xml diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warm/WarnStrategyMapper.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warn/WarnStrategyMapper.xml similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warm/WarnStrategyMapper.xml rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warn/WarnStrategyMapper.xml diff --git a/cloud-modules/cloud-modules-vehicle-gateway/pom.xml b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml new file mode 100644 index 0000000..be13d07 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml @@ -0,0 +1,100 @@ + + + + com.muyu + cloud-modules + 3.6.3 + + 3.6.3 + 4.0.0 + + cloud-modules-vehicle-gateway + + + cloud-modules-vehicle-gateway系统模块 + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + cloud-common-datasource + + + + + com.muyu + cloud-common-datascope + + + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + 1.2.5 + + + + + com.muyu + cloud-common-log + + + + + com.muyu + cloud-common-api-doc + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/demo.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/demo.java new file mode 100644 index 0000000..50e2aba --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/demo.java @@ -0,0 +1,57 @@ +package com.muyu; + +import org.eclipse.paho.client.mqttv3.*; +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; + +/** + * @ClassName demo + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/27 22:27 + */ +public class demo { + + public static void main(String[] args) { + + String topic = "vehicle"; + String content = "Message from MqttPublishSample"; + int qos = 2; + String broker = "tcp://106.15.136.7:1883"; + String clientId = "JavaSample"; + + try { + // 第三个参数为空,默认持久化策略 + MqttClient sampleClient = new MqttClient(broker, clientId); + MqttConnectOptions connOpts = new MqttConnectOptions(); + connOpts.setCleanSession(true); + System.out.println("Connecting to broker: "+broker); + sampleClient.connect(connOpts); + sampleClient.subscribe(topic,0); + sampleClient.setCallback(new MqttCallback() { + // 连接丢失 + @Override + public void connectionLost(Throwable throwable) { + + } + // 连接成功 + @Override + public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { + System.out.println(new String(mqttMessage.getPayload())); + } + // 接收信息 + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + + } + }); + } catch(MqttException me) { + System.out.println("reason "+me.getReasonCode()); + System.out.println("msg "+me.getMessage()); + System.out.println("loc "+me.getLocalizedMessage()); + System.out.println("cause "+me.getCause()); + System.out.println("excep "+me); + me.printStackTrace(); + } + } + +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java new file mode 100644 index 0000000..2178472 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java @@ -0,0 +1,80 @@ +package com.muyu.vehicleGateway.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import org.eclipse.paho.client.mqttv3.*; +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ClassName VehicleGatewayController + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/27 20:02 + */ +@RequestMapping("/vehicleGateway") +@RestController +@Tag(name = "车辆网关",description = "车辆网关管理负载中心") +public class VehicleGatewayController { + + + @PostMapping("/MqttPublishSample") + public static void MqttPublishSample(){ + //定义MQTT主题 + String topic = "vehicle"; + //定义要发布的消息内容 + String content = "Message from MqttPublishSample"; + //定义消息服务质量(qos)等级 + int qos = 2; + //定义MQTT代理服务器地址 + String broker = "tcp://127.0.0.1:1883"; + //定义客户端标识符 + String clientId = "JavaSample"; + //创建MemoryPersistence对象,用于消息的内存持久性 + MemoryPersistence persistence = new MemoryPersistence(); + + try{ + //创建MqttClient实例,连接到MQTT代理服务器 + MqttClient sampleClient = new MqttClient(broker,clientId); + + //创建MqttConnectOptions对象,用于配置连接选项 + MqttConnectOptions connOpts = new MqttConnectOptions(); + //设置CleanSession为true,标识每个连接都是一个全新的会话 + connOpts.setCleanSession(true); + //打印连接信息 + System.out.println("Connecting to broker: " + broker); + + sampleClient.connect(connOpts); + sampleClient.subscribe(topic,0); + sampleClient.setCallback(new MqttCallback() { + + //连接报错 + @Override + public void connectionLost(Throwable throwable) { + + } + //接收到消息 + @Override + public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { + System.out.println(new String(mqttMessage.getPayload())); + } + //消费完成 + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + + } + }); + } catch(MqttException me) { + System.out.println("reason "+me.getReasonCode()); + System.out.println("msg "+me.getMessage()); + System.out.println("loc "+me.getLocalizedMessage()); + System.out.println("cause "+me.getCause()); + System.out.println("excep "+me); + me.printStackTrace(); + + } + + } + +} diff --git a/cloud-modules/pom.xml b/cloud-modules/pom.xml index cd65b6b..86c07de 100644 --- a/cloud-modules/pom.xml +++ b/cloud-modules/pom.xml @@ -14,6 +14,7 @@ cloud-modules-file cloud-modules-enterprise cloud-weixin-mp + cloud-modules-vehicle-gateway cloud-modules From 782f31446bcc90bdef1d6280900b71b98e330eb0 Mon Sep 17 00:00:00 2001 From: liuyibo <14460729+liuyibo12345@user.noreply.gitee.com> Date: Sun, 29 Sep 2024 10:25:30 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat():=E9=A1=B9=E7=9B=AE=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0ecs=E5=AE=9E=E4=BE=8B=EF=BC=8C=E5=81=9C?= =?UTF-8?q?=E6=AD=A2=E5=88=A0=E9=99=A4ecs=E5=AE=9E=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud-auth/src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/bootstrap.yml | 4 +- .../cloud-modules-enterprise-server/pom.xml | 30 +++++- .../src/main/resources/bootstrap.yml | 4 +- .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/bootstrap.yml | 4 +- .../cloud-modules-vehicle-gateway/pom.xml | 28 +++++ .../muyu/CloudVehicleGatewayApplication.java | 20 ++++ .../src/main/java/com/muyu/demo.java | 57 ---------- .../controller/VehicleGatewayController.java | 6 +- .../vehicleGateway/instance/CreateClient.java | 34 ++++++ .../vehicleGateway/instance/DelInstance.java | 101 ++++++++++++++++++ .../instance/GenerateInstance.java | 91 ++++++++++++++++ .../src/main/resources/banner.txt | 2 + .../src/main/resources/bootstrap.yml | 46 ++++++++ .../src/main/resources/logback/dev.xml | 74 +++++++++++++ .../src/main/resources/logback/prod.xml | 81 ++++++++++++++ .../src/main/resources/logback/test.xml | 81 ++++++++++++++ .../src/main/resources/bootstrap.yml | 2 +- 20 files changed, 602 insertions(+), 69 deletions(-) create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/CloudVehicleGatewayApplication.java delete mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/demo.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/CreateClient.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/DelInstance.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/GenerateInstance.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/banner.txt create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/dev.xml create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/prod.xml create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/test.xml diff --git a/cloud-auth/src/main/resources/bootstrap.yml b/cloud-auth/src/main/resources/bootstrap.yml index eeaceee..f8ff18b 100644 --- a/cloud-auth/src/main/resources/bootstrap.yml +++ b/cloud-auth/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lyb # Spring spring: application: diff --git a/cloud-gateway/src/main/resources/bootstrap.yml b/cloud-gateway/src/main/resources/bootstrap.yml index 7723b63..5efd888 100644 --- a/cloud-gateway/src/main/resources/bootstrap.yml +++ b/cloud-gateway/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lyb # Spring spring: @@ -60,4 +60,4 @@ spring: groupId: DEFAULT_GROUP namespace: ${nacos.namespace} data-type: json - rule-type: gw-flow \ No newline at end of file + rule-type: gw-flow diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml index 911a9a6..e216b0b 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml @@ -77,6 +77,34 @@ cloud-common-api-doc + + + com.aliyun + ecs20140526 + 5.1.8 + + + com.aliyun + tea-openapi + 0.3.2 + + + com.aliyun + tea-console + 0.0.1 + + + com.aliyun + tea-util + 0.2.21 + + + com.aliyun + cloudapi20160714 + 3.10.1 + + + com.muyu @@ -101,4 +129,4 @@ - \ No newline at end of file + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml index b2e0126..a3e037f 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lyb spring: application: @@ -43,4 +43,4 @@ spring: # 系统共享配置 - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 系统环境Config共享配置 - - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} \ No newline at end of file + - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml index b471a18..21cfa55 100644 --- a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lyb # Spring spring: diff --git a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml index 7e3624f..b2b68de 100644 --- a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lyb # Spring spring: diff --git a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml index eacfcd2..b1b0bc9 100644 --- a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lyb spring: application: @@ -43,4 +43,4 @@ spring: # 系统共享配置 - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 系统环境Config共享配置 - - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} \ No newline at end of file + - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/pom.xml b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml index be13d07..3f4f80f 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/pom.xml +++ b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml @@ -78,6 +78,34 @@ cloud-common-api-doc + + + com.aliyun + ecs20140526 + 5.1.8 + + + com.aliyun + tea-openapi + 0.3.2 + + + com.aliyun + tea-console + 0.0.1 + + + com.aliyun + tea-util + 0.2.21 + + + com.aliyun + cloudapi20160714 + 3.10.1 + + + diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/CloudVehicleGatewayApplication.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/CloudVehicleGatewayApplication.java new file mode 100644 index 0000000..586e625 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/CloudVehicleGatewayApplication.java @@ -0,0 +1,20 @@ +package com.muyu; + +import com.muyu.common.security.annotation.EnableCustomConfig; +import com.muyu.common.security.annotation.EnableMyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * 系统模块 + * + * @author muyu + */ +@EnableCustomConfig +@EnableMyFeignClients +@SpringBootApplication +public class CloudVehicleGatewayApplication { + public static void main (String[] args) { + SpringApplication.run(CloudVehicleGatewayApplication.class, args); + } + } diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/demo.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/demo.java deleted file mode 100644 index 50e2aba..0000000 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/demo.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.muyu; - -import org.eclipse.paho.client.mqttv3.*; -import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; - -/** - * @ClassName demo - * @Description 描述 - * @Author YiBo.Liu - * @Date 2024/9/27 22:27 - */ -public class demo { - - public static void main(String[] args) { - - String topic = "vehicle"; - String content = "Message from MqttPublishSample"; - int qos = 2; - String broker = "tcp://106.15.136.7:1883"; - String clientId = "JavaSample"; - - try { - // 第三个参数为空,默认持久化策略 - MqttClient sampleClient = new MqttClient(broker, clientId); - MqttConnectOptions connOpts = new MqttConnectOptions(); - connOpts.setCleanSession(true); - System.out.println("Connecting to broker: "+broker); - sampleClient.connect(connOpts); - sampleClient.subscribe(topic,0); - sampleClient.setCallback(new MqttCallback() { - // 连接丢失 - @Override - public void connectionLost(Throwable throwable) { - - } - // 连接成功 - @Override - public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { - System.out.println(new String(mqttMessage.getPayload())); - } - // 接收信息 - @Override - public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { - - } - }); - } catch(MqttException me) { - System.out.println("reason "+me.getReasonCode()); - System.out.println("msg "+me.getMessage()); - System.out.println("loc "+me.getLocalizedMessage()); - System.out.println("cause "+me.getCause()); - System.out.println("excep "+me); - me.printStackTrace(); - } - } - -} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java index 2178472..c4d7f22 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java @@ -19,6 +19,9 @@ import org.springframework.web.bind.annotation.RestController; public class VehicleGatewayController { + /** + * 用于链接MQtt获取车联信息 + */ @PostMapping("/MqttPublishSample") public static void MqttPublishSample(){ //定义MQTT主题 @@ -28,7 +31,7 @@ public class VehicleGatewayController { //定义消息服务质量(qos)等级 int qos = 2; //定义MQTT代理服务器地址 - String broker = "tcp://127.0.0.1:1883"; + String broker = "tcp://106.15.136.7:1883"; //定义客户端标识符 String clientId = "JavaSample"; //创建MemoryPersistence对象,用于消息的内存持久性 @@ -77,4 +80,5 @@ public class VehicleGatewayController { } + } diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/CreateClient.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/CreateClient.java new file mode 100644 index 0000000..d17790d --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/CreateClient.java @@ -0,0 +1,34 @@ +package com.muyu.vehicleGateway.instance; + +import org.springframework.stereotype.Component; + +/** + * @ClassName CreateClient + * @Description 初始化账号 + * @Author YiBo.Liu + * @Date 2024/9/29 10:00 + */ +@Component +public class CreateClient { + + /** + * description : + *

使用AK&SK初始化账号Client

+ * @return Client + * + * @throws Exception + */ + public static com.aliyun.ecs20140526.Client createClient() throws Exception { + // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 + // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。 + com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 + .setAccessKeyId("LTAI5tLZdFdgNAXQyvs4nGGT") + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 + .setAccessKeySecret("cpG2Yq7G4s7veCidc2y5bUeJQwI3lI"); + // Endpoint 请参考 https://api.aliyun.com/product/Ecs + config.endpoint = "ecs.cn-shanghai.aliyuncs.com"; + return new com.aliyun.ecs20140526.Client(config); + } + +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/DelInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/DelInstance.java new file mode 100644 index 0000000..a3091c0 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/DelInstance.java @@ -0,0 +1,101 @@ +// This file is auto-generated, don't edit it. Thanks. +package com.muyu.vehicleGateway.instance; + +import com.aliyun.ecs20140526.models.DescribeInstancesRequest; +import com.aliyun.ecs20140526.models.DescribeInstancesResponse; +import com.aliyun.ecs20140526.models.DescribeInstancesResponseBody; +import com.aliyun.tea.*; +import com.aliyun.teautil.models.RuntimeOptions; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.boot.CommandLineRunner; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.annotation.PreDestroy; +import java.util.ArrayList; +import java.util.List; + +@Log4j2 +@Component +@Tag(name = "启动时创建实例") +public class DelInstance implements DisposableBean { + + public static void delInstance() throws Exception { + + // 创建ECS客户端对象,用于后续调用ECS相关API + com.aliyun.ecs20140526.Client client = CreateClient.createClient(); + + DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest() + .setRegionId("cn-shanghai"); + + //创建运行时选择对象,用于配置运行时的选项参数 + RuntimeOptions runtimeOptions = new RuntimeOptions(); + + //获取实例列表 + DescribeInstancesResponse describeInstancesResponse = client.describeInstancesWithOptions(describeInstancesRequest, runtimeOptions); + + //提取实例ID集合 + ArrayList list = new ArrayList<>(); + + + + DescribeInstancesResponseBody body = describeInstancesResponse.getBody(); + + for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance instance : body.getInstances().getInstance()) { + list.add(instance.getInstanceId()); + } + + for (String string : list) { + System.out.println("实例id:"+string); + } + + log.info("Instance IDs: " + list); + // 创建删除实例请求对象,并设置请求参数 + com.aliyun.ecs20140526.models.DeleteInstancesRequest deleteInstancesRequest = new com.aliyun.ecs20140526.models.DeleteInstancesRequest() + // 设置地域ID,指定删除实例的地域 + .setRegionId("cn-shanghai") + // 设置DryRun为true,用于验证请求是否可以成功,但不实际执行删除操作 + .setDryRun(false) + // 设置Force为true,表示即使实例有正在运行的任务,也强制删除实例 + .setForce(true) + // 设置TerminateSubscription为true,表示删除按订阅付费的实例时终止订阅 + .setTerminateSubscription(true) + .setInstanceId(list); + + System.out.println("删除ECS实例成功"); + // 创建运行时选项对象,用于配置运行时的选项参数 + com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); + try { + // 复制代码运行请自行打印 API 的返回值 + client.deleteInstancesWithOptions(deleteInstancesRequest, runtime); + } catch (TeaException error) { + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } catch (Exception _error) { + TeaException error = new TeaException(_error.getMessage(), _error); + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } + } + + + @Override + public void destroy() throws Exception { + System.out.println("删除中======================="); + delInstance(); + + + } +} + + diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/GenerateInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/GenerateInstance.java new file mode 100644 index 0000000..7adc53a --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/GenerateInstance.java @@ -0,0 +1,91 @@ +package com.muyu.vehicleGateway.instance; + +import com.aliyun.tea.TeaException; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.log4j.Log4j2; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; + +/** + * @ClassName GenerateInstance + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/28 19:39 + */ +@Component +@Log4j2 +@Tag(name = "程序停止删除实例") +public class GenerateInstance implements ApplicationRunner { + + /** + * 启动自动创建实例 + * @throws Exception + */ + public static void generateInstance() throws Exception { + + // 创建ECS客户端对象,用于后续调用ECS相关API + com.aliyun.ecs20140526.Client client = CreateClient.createClient(); + + com.aliyun.ecs20140526.models.RunInstancesRequest.RunInstancesRequestSystemDisk systemDisk = new com.aliyun.ecs20140526.models.RunInstancesRequest.RunInstancesRequestSystemDisk() + .setSize("40") + .setCategory("cloud_essd"); + com.aliyun.ecs20140526.models.RunInstancesRequest runInstancesRequest = new com.aliyun.ecs20140526.models.RunInstancesRequest() + // 设置地域ID + .setRegionId("cn-shanghai") + // 设置镜像ID + .setImageId("m-uf64hrlxa0rbmyd7ovvq") + // 设置实例类型 + .setInstanceType("ecs.t6-c1m1.large") + // 设置安全组ID + .setSecurityGroupId("sg-uf6f6dvazjqv127a4yyt") + // 设置虚拟交换机ID + .setVSwitchId("vsw-uf6htez4ox9k2c4cs8505") + // 设置实例名称 + .setInstanceName("server-mqtt") + // 设置实例付费类型为后付费按量付费 + .setInstanceChargeType("PostPaid") + // 设置互联网最大出带宽为1 Mbps + .setInternetMaxBandwidthOut(1) + // 设置系统盘配置 + .setSystemDisk(systemDisk) + // 设置主机名 + .setHostName("root") + // 设置实例密码 + .setPassword("Six@211206") + // 设置创建实例的数量 + .setAmount(1); + + + + com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); + try { + // 复制代码运行请自行打印 API 的返回值 + client.runInstancesWithOptions(runInstancesRequest, runtime); + } catch (TeaException error) { + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } catch (Exception _error) { + TeaException error = new TeaException(_error.getMessage(), _error); + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } + } + + @Override + public void run(ApplicationArguments args) throws Exception { + generateInstance(); + System.out.println("创建实例成功"); + } + + + +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/banner.txt b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..a214815 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml @@ -0,0 +1,46 @@ +# Tomcat +server: + port: 10099 + +# nacos线上地址 +nacos: + addr: 106.15.136.7:8848 + user-name: nacos + password: nacos + namespace: lyb + +spring: + application: + # 应用名称 + name: cloud-vehicle-gateway + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + config: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + # 系统共享配置 + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # 系统环境Config共享配置 + - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/dev.xml new file mode 100644 index 0000000..03a6f37 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/dev.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/prod.xml new file mode 100644 index 0000000..0d5066f --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/prod.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/test.xml new file mode 100644 index 0000000..0d5066f --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/logback/test.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml index da1f316..a61db2e 100644 --- a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml +++ b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lyb # Spring spring: From cb79600bc029e21b7c92292d43d984cff8a678b2 Mon Sep 17 00:00:00 2001 From: liuyibo <14460729+liuyibo12345@user.noreply.gitee.com> Date: Sun, 29 Sep 2024 11:20:00 +0800 Subject: [PATCH 3/3] =?UTF-8?q?style():=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/VehicleGatewayController.java | 2 +- .../instance/CreateClient.java | 10 +++--- .../instance/DelInstance.java | 36 ++++++++++--------- .../instance/GenerateInstance.java | 22 ++++++------ 4 files changed, 38 insertions(+), 32 deletions(-) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/{vehicleGateway => vehiclegateway}/controller/VehicleGatewayController.java (98%) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/{vehicleGateway => vehiclegateway}/instance/CreateClient.java (80%) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/{vehicleGateway => vehiclegateway}/instance/DelInstance.java (78%) rename cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/{vehicleGateway => vehiclegateway}/instance/GenerateInstance.java (80%) diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/controller/VehicleGatewayController.java similarity index 98% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/controller/VehicleGatewayController.java index c4d7f22..4099fa5 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/controller/VehicleGatewayController.java @@ -1,4 +1,4 @@ -package com.muyu.vehicleGateway.controller; +package com.muyu.vehiclegateway.controller; import io.swagger.v3.oas.annotations.tags.Tag; import org.eclipse.paho.client.mqttv3.*; diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/CreateClient.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/CreateClient.java similarity index 80% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/CreateClient.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/CreateClient.java index d17790d..ce9eac3 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/CreateClient.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/CreateClient.java @@ -1,5 +1,7 @@ -package com.muyu.vehicleGateway.instance; +package com.muyu.vehiclegateway.instance; +import com.aliyun.ecs20140526.Client; +import com.aliyun.teaopenapi.models.Config; import org.springframework.stereotype.Component; /** @@ -18,17 +20,17 @@ public class CreateClient { * * @throws Exception */ - public static com.aliyun.ecs20140526.Client createClient() throws Exception { + public static Client createClient() throws Exception { // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。 - com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() + Config config = new Config() // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 .setAccessKeyId("LTAI5tLZdFdgNAXQyvs4nGGT") // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 .setAccessKeySecret("cpG2Yq7G4s7veCidc2y5bUeJQwI3lI"); // Endpoint 请参考 https://api.aliyun.com/product/Ecs config.endpoint = "ecs.cn-shanghai.aliyuncs.com"; - return new com.aliyun.ecs20140526.Client(config); + return new Client(config); } } diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/DelInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/DelInstance.java similarity index 78% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/DelInstance.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/DelInstance.java index a3091c0..8013bbd 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/DelInstance.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/DelInstance.java @@ -1,31 +1,36 @@ // This file is auto-generated, don't edit it. Thanks. -package com.muyu.vehicleGateway.instance; +package com.muyu.vehiclegateway.instance; +import com.aliyun.ecs20140526.Client; +import com.aliyun.ecs20140526.models.DeleteInstancesRequest; import com.aliyun.ecs20140526.models.DescribeInstancesRequest; import com.aliyun.ecs20140526.models.DescribeInstancesResponse; import com.aliyun.ecs20140526.models.DescribeInstancesResponseBody; import com.aliyun.tea.*; +import com.aliyun.teautil.Common; import com.aliyun.teautil.models.RuntimeOptions; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.DisposableBean; -import org.springframework.boot.CommandLineRunner; -import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; -import javax.annotation.PreDestroy; import java.util.ArrayList; -import java.util.List; +/** + * @ClassName GenerateInstance + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/28 19:39 + */ @Log4j2 @Component -@Tag(name = "启动时创建实例") +@Tag(name = "停止程序时删除ECS服务器实例") public class DelInstance implements DisposableBean { public static void delInstance() throws Exception { // 创建ECS客户端对象,用于后续调用ECS相关API - com.aliyun.ecs20140526.Client client = CreateClient.createClient(); + Client client = CreateClient.createClient(); DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest() .setRegionId("cn-shanghai"); @@ -39,8 +44,6 @@ public class DelInstance implements DisposableBean { //提取实例ID集合 ArrayList list = new ArrayList<>(); - - DescribeInstancesResponseBody body = describeInstancesResponse.getBody(); for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance instance : body.getInstances().getInstance()) { @@ -48,12 +51,11 @@ public class DelInstance implements DisposableBean { } for (String string : list) { - System.out.println("实例id:"+string); + log.info("实例id:"+string); } - log.info("Instance IDs: " + list); // 创建删除实例请求对象,并设置请求参数 - com.aliyun.ecs20140526.models.DeleteInstancesRequest deleteInstancesRequest = new com.aliyun.ecs20140526.models.DeleteInstancesRequest() + DeleteInstancesRequest deleteInstancesRequest = new DeleteInstancesRequest() // 设置地域ID,指定删除实例的地域 .setRegionId("cn-shanghai") // 设置DryRun为true,用于验证请求是否可以成功,但不实际执行删除操作 @@ -66,7 +68,7 @@ public class DelInstance implements DisposableBean { System.out.println("删除ECS实例成功"); // 创建运行时选项对象,用于配置运行时的选项参数 - com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); + RuntimeOptions runtime = new RuntimeOptions(); try { // 复制代码运行请自行打印 API 的返回值 client.deleteInstancesWithOptions(deleteInstancesRequest, runtime); @@ -76,15 +78,15 @@ public class DelInstance implements DisposableBean { System.out.println(error.getMessage()); // 诊断地址 System.out.println(error.getData().get("Recommend")); - com.aliyun.teautil.Common.assertAsString(error.message); + Common.assertAsString(error.message); } catch (Exception _error) { TeaException error = new TeaException(_error.getMessage(), _error); // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 // 错误 message - System.out.println(error.getMessage()); + log.info("错误:"+error.getMessage()); // 诊断地址 - System.out.println(error.getData().get("Recommend")); - com.aliyun.teautil.Common.assertAsString(error.message); + log.info("错误:"+error.getData().get("Recommend")); + Common.assertAsString(error.message); } } diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/GenerateInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/GenerateInstance.java similarity index 80% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/GenerateInstance.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/GenerateInstance.java index 7adc53a..729271b 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/instance/GenerateInstance.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/GenerateInstance.java @@ -1,6 +1,10 @@ -package com.muyu.vehicleGateway.instance; +package com.muyu.vehiclegateway.instance; +import com.aliyun.ecs20140526.Client; +import com.aliyun.ecs20140526.models.RunInstancesRequest; import com.aliyun.tea.TeaException; +import com.aliyun.teautil.Common; +import com.aliyun.teautil.models.RuntimeOptions; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.log4j.Log4j2; import org.springframework.boot.ApplicationArguments; @@ -15,7 +19,7 @@ import org.springframework.stereotype.Component; */ @Component @Log4j2 -@Tag(name = "程序停止删除实例") +@Tag(name = "程序启动创建ECS服务器实例") public class GenerateInstance implements ApplicationRunner { /** @@ -25,12 +29,12 @@ public class GenerateInstance implements ApplicationRunner { public static void generateInstance() throws Exception { // 创建ECS客户端对象,用于后续调用ECS相关API - com.aliyun.ecs20140526.Client client = CreateClient.createClient(); + Client client = CreateClient.createClient(); - com.aliyun.ecs20140526.models.RunInstancesRequest.RunInstancesRequestSystemDisk systemDisk = new com.aliyun.ecs20140526.models.RunInstancesRequest.RunInstancesRequestSystemDisk() + RunInstancesRequest.RunInstancesRequestSystemDisk systemDisk = new RunInstancesRequest.RunInstancesRequestSystemDisk() .setSize("40") .setCategory("cloud_essd"); - com.aliyun.ecs20140526.models.RunInstancesRequest runInstancesRequest = new com.aliyun.ecs20140526.models.RunInstancesRequest() + RunInstancesRequest runInstancesRequest = new RunInstancesRequest() // 设置地域ID .setRegionId("cn-shanghai") // 设置镜像ID @@ -56,9 +60,7 @@ public class GenerateInstance implements ApplicationRunner { // 设置创建实例的数量 .setAmount(1); - - - com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); + RuntimeOptions runtime = new RuntimeOptions(); try { // 复制代码运行请自行打印 API 的返回值 client.runInstancesWithOptions(runInstancesRequest, runtime); @@ -68,7 +70,7 @@ public class GenerateInstance implements ApplicationRunner { System.out.println(error.getMessage()); // 诊断地址 System.out.println(error.getData().get("Recommend")); - com.aliyun.teautil.Common.assertAsString(error.message); + Common.assertAsString(error.message); } catch (Exception _error) { TeaException error = new TeaException(_error.getMessage(), _error); // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 @@ -76,7 +78,7 @@ public class GenerateInstance implements ApplicationRunner { System.out.println(error.getMessage()); // 诊断地址 System.out.println(error.getData().get("Recommend")); - com.aliyun.teautil.Common.assertAsString(error.message); + Common.assertAsString(error.message); } }