diff --git a/aliyun-api/pom.xml b/aliyun-api/pom.xml new file mode 100644 index 0000000..709ae67 --- /dev/null +++ b/aliyun-api/pom.xml @@ -0,0 +1,273 @@ + + + 4.0.0 + + com.muyu + muyu + 3.6.3 + + + 20 + 20 + UTF-8 + + + + + + aliyun-api + + com.aliyun + + 1.0.0 + + jar + + sample + Alibaba Cloud SDK Code Sample for Java + + https://github.com/aliyun/alibabacloud-code-sample + + + The Apache License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + + + + aliyundeveloper + Aliyun SDK + aliyunsdk@aliyun.com + + + + + sonatype-nexus-snapshots + https://s01.oss.sonatype.org/content/repositories/snapshots + + + sonatype-nexus-staging + https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + + + + + + com.aliyun + ecs20140526 + 3.1.2 + + + com.aliyun + tea-openapi + 0.3.2 + + + com.aliyun + tea-util + 0.2.21 + + + com.aliyun + tea-console + 0.0.1 + + + com.aliyun + darabonba-env + 0.1.1 + + + com.aliyun + tea + 1.1.14 + + + com.muyu + muyu-common-core + + + + io.springfox + springfox-boot-starter + 3.0.0 + + + + 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 + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + muyu-common-datasource + + + + + com.muyu + muyu-common-datascope + + + + + com.muyu + muyu-common-log + + + + + com.muyu + muyu-common-swagger + + + com.muyu + muyu-file-remote + + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + 1.2.5 + + + com.muyu + muyu-common-event + 3.6.3 + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.6.1 + + 8 + 8 + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.6 + + + sign-artifacts + verify + + sign + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.3 + true + + sonatype-nexus-staging + https://s01.oss.sonatype.org/ + true + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.1.1 + + UTF-8 + none + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.1 + + + org.apache.maven.plugins + maven-assembly-plugin + 2.4.1 + + + jar-with-dependencies + + + + true + com.aliyun.sample.Sample1 + + + + + + make-assembly + package + + single + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + ${project.artifactId} + + + + + + + + diff --git a/aliyun-api/src/main/java/com/aliyun/demo/config/ClientConfig.java b/aliyun-api/src/main/java/com/aliyun/demo/config/ClientConfig.java new file mode 100644 index 0000000..6b1c5e1 --- /dev/null +++ b/aliyun-api/src/main/java/com/aliyun/demo/config/ClientConfig.java @@ -0,0 +1,31 @@ +package com.aliyun.demo.config; + +/** + * @BelongsProject: com.aliyun.demo + * @BelongsPackage: com.aliyun.demo.config + * @Author: HuangDaJu + * @CreateTime: 2024-04-11 22:10 + * @Description: 阿里云客户端配置类 + * @Version: 1.0 + */ +public class ClientConfig { + + /** + * 使用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("LTAI5tANGefs2gi8nsu4AoSZ") + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 + .setAccessKeySecret("Ut5RaJvvG7dP8hgK82qjdtvyUA6x8g"); + // Endpoint 请参考 https://api.aliyun.com/product/Ecs + config.endpoint = "ecs.cn-zhangjiakou.aliyuncs.com"; + return new com.aliyun.ecs20140526.Client(config); + } + +} diff --git a/aliyun-api/src/main/java/com/aliyun/demo/create/CreateServer.java b/aliyun-api/src/main/java/com/aliyun/demo/create/CreateServer.java new file mode 100644 index 0000000..d97c376 --- /dev/null +++ b/aliyun-api/src/main/java/com/aliyun/demo/create/CreateServer.java @@ -0,0 +1,82 @@ +package com.aliyun.demo.create; + +import com.aliyun.demo.config.ClientConfig; +import com.aliyun.ecs20140526.models.CreateInstanceResponse; +import com.aliyun.ecs20140526.models.CreateInstanceResponseBody; +import com.aliyun.tea.TeaException; + +import java.util.List; + +/** + * 创建一台或多台按量收费的ECS实例。 + * + * @BelongsProject: aliyun-api + * @BelongsPackage: com.aliyun.demo.create + * @Author: HuangDaJu + * @CreateTime: 2024-04-11 21:23 + * @Description: 主要用于创建ECS实例的示例代码。 + * @Version: 1.0 + */ +public class CreateServer { + + /** + * 主函数入口。 + * @throws Exception 可能抛出的异常。 + */ + public static void main(String[] args_) throws Exception { + List args = java.util.Arrays.asList(args_); // 将命令行参数转换为List格式 + com.aliyun.ecs20140526.Client client = ClientConfig.createClient(); // 创建ECS客户端 + + // 设置系统盘参数 + com.aliyun.ecs20140526.models.CreateInstanceRequest.CreateInstanceRequestSystemDisk systemDisk = + new com.aliyun.ecs20140526.models.CreateInstanceRequest.CreateInstanceRequestSystemDisk() + .setCategory("cloud_efficiency") + .setSize(20); + + // 创建实例请求对象,并设置相关参数 + com.aliyun.ecs20140526.models.CreateInstanceRequest createInstanceRequest = + new com.aliyun.ecs20140526.models.CreateInstanceRequest() + .setRegionId("cn-zhangjiakou") // 地域ID + .setImageId("m-8vb8z0ygyrzgqt54k3wi") // 镜像ID + .setInstanceType("ecs.t6-c1m1.large") // 实例规格 + .setSecurityGroupId("sg-8vbfx0e48cekrpzgsa72") // 安全组ID + .setInstanceName("huangdaju-hdj") // 实例名称 + .setInternetChargeType("PayByTraffic") // 上网计费方式 + .setAutoRenew(false) // 是否自动续费 + .setInternetMaxBandwidthIn(5) // 公网入带宽最大值 + .setInternetMaxBandwidthOut(5) // 公网出带宽最大值 + .setPassword("Huangdaju520.") // 实例密码 + .setZoneId("cn-zhangjiakou-c") // 可用区ID + .setSystemDisk(systemDisk) // 系统盘设置 + .setVSwitchId("vsw-8vbn6cq2uy0mmw69l6ryq") // 交换机ID + .setPrivateIpAddress("10.101.0.1") // 私网IP地址 + .setPeriod(1) // 购买资源的时长 + .setPeriodUnit("Month") // 购买资源的时长单位 + .setCreditSpecification("Standard") // 性能模式 + .setDeletionProtection(false); // 是否开启删除保护 + + com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); // 创建运行时选项 + + try { + // 发起创建实例的请求,并处理响应 + CreateInstanceResponse instanceWithOptions = client.createInstanceWithOptions(createInstanceRequest, runtime); + Integer statusCode = instanceWithOptions.getStatusCode(); // 获取状态码 + CreateInstanceResponseBody body = instanceWithOptions.getBody(); // 获取响应体 + String instanceId = body.getInstanceId(); // 获取实例ID + System.out.println("创建返回码:" + statusCode); + System.out.println("创建的实例ID:" + instanceId); + } catch (TeaException error) { + // 处理ECS客户端抛出的异常 + // 打印异常信息和推荐的诊断地址 + 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); + System.out.println(error.getMessage()); + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } + } +} diff --git a/aliyun-api/src/main/java/com/aliyun/demo/query/SelectServerInfo.java b/aliyun-api/src/main/java/com/aliyun/demo/query/SelectServerInfo.java new file mode 100644 index 0000000..1e154a0 --- /dev/null +++ b/aliyun-api/src/main/java/com/aliyun/demo/query/SelectServerInfo.java @@ -0,0 +1,76 @@ +package com.aliyun.demo.query; + +import com.aliyun.demo.config.ClientConfig; +import com.aliyun.ecs20140526.models.DescribeInstancesResponse; +import com.aliyun.ecs20140526.models.DescribeInstancesResponseBody; +import com.aliyun.tea.TeaException; + +import java.util.List; + +/** + * @BelongsProject: aliyun-api + * @BelongsPackage: com.aliyun.demo.query + * @Author: HuangDaJu + * @CreateTime: 2024-04-11 22:20 + * @Description: 查询一台或多台ECS实例的详细信息 + * @Version: 1.0 + */ +public class SelectServerInfo { + + static int i = 1; + + public static void main(String[] args_) throws Exception { + List args = java.util.Arrays.asList(args_); + com.aliyun.ecs20140526.Client client = ClientConfig.createClient(); + com.aliyun.ecs20140526.models.DescribeInstancesRequest describeInstancesRequest = new com.aliyun.ecs20140526.models.DescribeInstancesRequest() + .setRegionId("cn-zhangjiakou") + .setInstanceName("huangdaju-hdj") + .setPageSize(10); + com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); + try { + // 复制代码运行请自行打印 API 的返回值 + DescribeInstancesResponse describeInstancesResponse = client.describeInstancesWithOptions(describeInstancesRequest, runtime); + DescribeInstancesResponseBody body = describeInstancesResponse.getBody(); + DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstances instances = body.getInstances(); + List instance = instances.getInstance(); + instance.stream().forEach(item->{ + System.out.println("实例{" + i + "}的ID:" + item.getInstanceId()); + System.out.println("名称:" + item.getInstanceName()); + System.out.println("地域ID:" + item.getRegionId()); + System.out.println("状态:" + item.getStatus()); + System.out.println("类型:" + item.getInstanceType()); + System.out.println("CPU核心数:" + item.getCpu()); + System.out.println("内存大小:" + item.getMemory() + "MB"); + System.out.println("磁盘大小:" + item.getLocalStorageCapacity() + "G"); + System.out.println("操作系统:" + item.getOSName()); + System.out.println("网络类型:" + item.getInstanceNetworkType()); + System.out.println("公网出带宽值:" + item.getInternetMaxBandwidthOut() + "Mbit/s"); + System.out.println("公网入带宽值:" + item.getInternetMaxBandwidthIn() + "Mbit/s"); + System.out.println("公网IP:" + item.getPublicIpAddress().getIpAddress()); + System.out.println("私网IP:" + item.getVpcAttributes().getPrivateIpAddress().ipAddress); + System.out.println("专有网络VPCID:" + item.getVpcAttributes().getVpcId()); + System.out.println("安全组ID:" + item.getSecurityGroupIds().getSecurityGroupId()); + System.out.println("创建时间:" + item.getCreationTime()); + System.out.println("到期时间:" + item.getExpiredTime()); + System.out.println("是否可以回收:" + (item.getRecyclable()?"是":"否") + "\n\n"); + i++; + + }); + } 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); + } + } +} diff --git a/aliyun-api/src/main/java/com/aliyun/sample/Sample.java b/aliyun-api/src/main/java/com/aliyun/sample/Sample.java new file mode 100644 index 0000000..8b6819c --- /dev/null +++ b/aliyun-api/src/main/java/com/aliyun/sample/Sample.java @@ -0,0 +1,80 @@ +// This file is auto-generated, don't edit it. Thanks. +package com.aliyun.sample; + +import com.aliyun.tea.*; + +public class Sample { + + /** + * 使用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(System.getenv("LTAI5tANGefs2gi8nsu4AoSZ")) + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 + .setAccessKeySecret(System.getenv("Ut5RaJvvG7dP8hgK82qjdtvyUA6x8g")); + // Endpoint 请参考 https://api.aliyun.com/product/Ecs + config.endpoint = "ecs.cn-zhangjiakou.aliyuncs.com"; + return new com.aliyun.ecs20140526.Client(config); + } + + public static void main(String[] args_) throws Exception { + java.util.List args = java.util.Arrays.asList(args_); + com.aliyun.ecs20140526.Client client = Sample.createClient(); + com.aliyun.ecs20140526.models.RunInstancesRequest.RunInstancesRequestCpuOptions cpuOptions = new com.aliyun.ecs20140526.models.RunInstancesRequest.RunInstancesRequestCpuOptions() + .setCore(2) + .setThreadsPerCore(2); + com.aliyun.ecs20140526.models.RunInstancesRequest.RunInstancesRequestSystemDisk systemDisk = new com.aliyun.ecs20140526.models.RunInstancesRequest.RunInstancesRequestSystemDisk() + .setSize("20") + .setCategory("cloud_efficiency") + .setPerformanceLevel("PL0"); + com.aliyun.ecs20140526.models.RunInstancesRequest runInstancesRequest = new com.aliyun.ecs20140526.models.RunInstancesRequest() + .setRegionId("cn-zhangjiakou") + .setImageId("m-8vb8z0ygyrzgqt54k3wi") + .setInstanceType("ecs.e-c1m1.large") + .setInternetMaxBandwidthIn(5) + .setSystemDisk(systemDisk) + .setInternetChargeType("PayByTraffic") + .setZoneId("cn-zhangjiakou-c") + .setPassword("Huangdaju520.") + .setPeriodUnit("Week") + .setPeriod(1) + .setDryRun(false) + .setSecurityEnhancementStrategy("Deactive") + .setAmount(1) + .setVSwitchId("vsw-8vbn6cq2uy0mmw69l6ryq") + .setInstanceName("huandgaju") + .setSecurityGroupId("sg-8vbfx0e48cekrpzgsa72") + .setPasswordInherit(false) + .setUniqueSuffix(false) + .setAutoRenew(false) + .setInstanceChargeType("PostPaid") + .setDeletionProtection(false) + .setCpuOptions(cpuOptions); + 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); + } + } +} diff --git a/aliyun-api/src/main/java/com/aliyun/sample/Sample1.java b/aliyun-api/src/main/java/com/aliyun/sample/Sample1.java new file mode 100644 index 0000000..802d7b0 --- /dev/null +++ b/aliyun-api/src/main/java/com/aliyun/sample/Sample1.java @@ -0,0 +1,53 @@ +// This file is auto-generated, don't edit it. Thanks. +package com.aliyun.sample; + +import com.aliyun.tea.*; + +public class Sample1 { + + /** + * 使用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("LTAI5tANGefs2gi8nsu4AoSZ") + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 + .setAccessKeySecret("Ut5RaJvvG7dP8hgK82qjdtvyUA6x8g"); + // Endpoint 请参考 https://api.aliyun.com/product/Ecs + config.endpoint = "cn-zhangjiakou"; + return new com.aliyun.ecs20140526.Client(config); + } + + public static void main(String[] args_) throws Exception { +// java.util.List args = java.util.Arrays.asList(args_); + com.aliyun.ecs20140526.Client client = Sample1.createClient(); + com.aliyun.ecs20140526.models.DescribeUserDataRequest describeUserDataRequest = new com.aliyun.ecs20140526.models.DescribeUserDataRequest() + .setInstanceId("i-8vbamj8u1q8xnmkze5m0"); + com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); + try { + // 复制代码运行请自行打印 API 的返回值 + client.describeUserDataWithOptions(describeUserDataRequest, 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); + } + } +} diff --git a/aliyun-api/src/main/java/com/aliyun/sample/Sample2.java b/aliyun-api/src/main/java/com/aliyun/sample/Sample2.java new file mode 100644 index 0000000..fedffad --- /dev/null +++ b/aliyun-api/src/main/java/com/aliyun/sample/Sample2.java @@ -0,0 +1,88 @@ +// This file is auto-generated, don't edit it. Thanks. +package com.aliyun.sample; + +import com.aliyun.darabonba.env.EnvClient; +import com.aliyun.ecs20140526.models.DescribeInstanceMonitorDataRequest; +import com.aliyun.ecs20140526.models.DescribeInstanceMonitorDataResponse; +import com.aliyun.ecs20140526.models.DescribeUserDataRequest; +import com.aliyun.ecs20140526.models.DescribeUserDataResponse; +import com.aliyun.tea.TeaException; +import com.aliyun.tea.TeaModel; +import com.aliyun.teaopenapi.models.Config; +import com.aliyun.teautil.Common; + +public class Sample2 { + + /** + * Initialization 初始化公共请求参数 + */ + public static com.aliyun.ecs20140526.Client Initialization(String regionId) throws Exception { + Config config = new Config(); + // 您的AccessKey ID + config.accessKeyId = EnvClient.getEnv("LTAI5tANGefs2gi8nsu4AoSZ"); + // 您的AccessKey Secret + config.accessKeySecret = EnvClient.getEnv("Ut5RaJvvG7dP8hgK82qjdtvyUA6x8g"); + // 您的可用区ID + config.regionId = regionId; + return new com.aliyun.ecs20140526.Client(config); + } + + /** + * DescribeInstanceMonitorData 查询一台 Ecs 实例所有相关的监控信息 + */ + public static void DescribeInstanceMonitorData(com.aliyun.ecs20140526.Client client, String instanceId, String startTime, String endTime) throws Exception { + DescribeInstanceMonitorDataRequest req = new DescribeInstanceMonitorDataRequest(); + // 待查询的实例 ID + req.instanceId = instanceId; + // 获取数据的起始时间点。按照 ISO8601 标准表示,并需要使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。如果指定的秒(ss)不是 00,则自动换算为下一分钟。 + req.startTime = startTime; + // 获取数据的结束时间点。按照 ISO8601 标准表示,并需要使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。 如果指定的秒(ss)不是 00,则自动换算为下一分钟。 + req.endTime = endTime; + try { + DescribeInstanceMonitorDataResponse resp = client.describeInstanceMonitorData(req); + com.aliyun.teaconsole.Client.log("--------------------查询Ecs所有相关的监控信息--------------------"); + com.aliyun.teaconsole.Client.log(Common.toJSONString(TeaModel.buildMap(resp))); + } catch (TeaException error) { + com.aliyun.teaconsole.Client.log(error.message); + } catch (Exception _error) { + TeaException error = new TeaException(_error.getMessage(), _error); + com.aliyun.teaconsole.Client.log(error.message); + } + } + + /** + * DescribeUserData 查询一台Ecs实例的自定义数据 + */ + public static void DescribeUserData(com.aliyun.ecs20140526.Client client, String instanceId, String regionId) throws Exception { + DescribeUserDataRequest req = new DescribeUserDataRequest(); + req.regionId = regionId; + req.instanceId = instanceId; + try { + DescribeUserDataResponse resp = client.describeUserData(req); + com.aliyun.teaconsole.Client.log("--------------------查询Ecs自定义数据--------------------"); + com.aliyun.teaconsole.Client.log(Common.toJSONString(TeaModel.buildMap(resp))); + } catch (TeaException error) { + com.aliyun.teaconsole.Client.log(error.message); + } catch (Exception _error) { + TeaException error = new TeaException(_error.getMessage(), _error); + com.aliyun.teaconsole.Client.log(error.message); + } + } + + public static void main(String[] args_) throws Exception { +// java.util.List args = java.util.Arrays.asList(args_); + // 可用区域Id + String regionId = "cn-zhangjiakou"; + // 待查询的实例 ID + String instanceId = "i-8vbamj8u1q8xnmkze5m0"; + // 获取数据的起始时间点。按照 ISO8601 表示,并需要使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。如果指定的秒(ss)不是 00,则自动换算为下一分钟。 + String startTime = "2024-03-14T12:12:12Z"; + // 获取数据的结束时间点。按照 ISO8601 标准表示,并需要使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。 如果指定的秒(ss)不是 00,则自动换算为下一分钟。 + String endTime = "2024-04-10T12:12:12Z"; + com.aliyun.ecs20140526.Client client = Sample2.Initialization(regionId); + // 查询一台 Ecs 实例所有相关的监控信息 + Sample2.DescribeInstanceMonitorData(client, instanceId, startTime, endTime); + // 查询一台Ecs实例的自定义数据 + Sample2.DescribeUserData(client, instanceId, regionId); + } +} diff --git a/muyu-analyze/pom.xml b/muyu-analyze/pom.xml index f94e804..a24c5d6 100644 --- a/muyu-analyze/pom.xml +++ b/muyu-analyze/pom.xml @@ -107,11 +107,6 @@ 3.6.3 - - - org.springframework.boot - spring-boot-starter-amqp - diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/config/TutConfig.java b/muyu-analyze/src/main/java/com/muyu/analyze/config/TutConfig.java deleted file mode 100644 index 0c9ab48..0000000 --- a/muyu-analyze/src/main/java/com/muyu/analyze/config/TutConfig.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.muyu.analyze.config; - - -import com.muyu.common.core.constant.*; -import org.springframework.amqp.core.*; -import org.springframework.context.annotation.*; - - -/** - * 声明队列绑定交换机 - * - * @author muyu - */ -@Configuration -public class TutConfig { - - @Bean - public Queue fault() { - return new Queue(MQQueueConstants.ALARM_QUEUE,true); - } - - @Bean - public Queue alarm() { - return new Queue(MQQueueConstants.FAULT_QUEUE, true); - } -} diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/BreakdownImpl.java b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/BreakdownImpl.java index c7c20ce..49a054a 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/BreakdownImpl.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/BreakdownImpl.java @@ -3,12 +3,10 @@ package com.muyu.analyze.service.impl; import com.muyu.analyze.service.VehicleService; import com.muyu.analyze.utils.StateConstant; import com.muyu.business.domain.FaultLogs; -import com.muyu.common.core.constant.MQQueueConstants; -import com.muyu.common.core.utils.uuid.IdUtils; import com.muyu.common.redis.service.RedisService; import com.muyu.system.common.domain.VehicleData; import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.rabbit.core.RabbitTemplate; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -29,8 +27,7 @@ import java.util.concurrent.TimeUnit; public class BreakdownImpl implements VehicleService{ - @Autowired - private RabbitTemplate rabbitTemplate; + @Autowired private HttpServletRequest request; @@ -217,7 +214,7 @@ public class BreakdownImpl implements VehicleService{ faultLogsAddReq.setFaultLevel(1); } - //进入这里的都是有故障的,存入hashset 放入redis +// 进入这里的都是有故障的,存入hashset 放入redis String key = "breakdown"; HashSet hashSet = new HashSet<>(); hashSet.add(faultLogsAddReq); @@ -236,10 +233,10 @@ public class BreakdownImpl implements VehicleService{ // },new CorrelationData(UUID.randomUUID().toString())); - rabbitTemplate.convertAndSend(MQQueueConstants.FAULT_QUEUE, faultLogsAddReq, message -> { - message.getMessageProperties().setMessageId(IdUtils.fastSimpleUUID()); - return message; - }); +// rabbitTemplate.convertAndSend(MQQueueConstants.FAULT_QUEUE, faultLogsAddReq, message -> { +// message.getMessageProperties().setMessageId(IdUtils.fastSimpleUUID()); +// return message; +// }); log.info("车辆VIN:"+vehicleData.getVin()+"故障事件已记录"); log.info("故障事件结束"); diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/FenceAlarmImpl.java b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/FenceAlarmImpl.java index ca349a2..687a8d3 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/FenceAlarmImpl.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/FenceAlarmImpl.java @@ -2,19 +2,13 @@ package com.muyu.analyze.service.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import com.muyu.analyze.mapper.VehicleMapper; import com.muyu.analyze.service.VehicleService; -import com.muyu.business.domain.FaultLogs; import com.muyu.business.domain.Fence; -import com.muyu.common.core.constant.MQQueueConstants; -import com.muyu.common.core.utils.DateUtils; -import com.muyu.common.core.utils.uuid.IdUtils; import com.muyu.common.redis.service.RedisService; import com.muyu.system.common.domain.Car; import com.muyu.system.common.domain.VehicleData; import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -44,8 +38,6 @@ public class FenceAlarmImpl implements VehicleService { @Autowired private VehicleMapper vehicleMapper; - @Autowired - private RabbitTemplate rabbitTemplate; @Override public void eventResolution(VehicleData analyze) throws JsonProcessingException { @@ -108,21 +100,21 @@ public class FenceAlarmImpl implements VehicleService { } - FaultLogs faultLogs = new FaultLogs(); - faultLogs.setCarVin(vin); - faultLogs.setFaultCode("WEILAN"); - faultLogs.setStartAlarmTime(DateUtils.getNowDate()); - faultLogs.setAlarmFlag("Y"); - faultLogs.setDisposeStatus("1"); +// FaultLogs faultLogs = new FaultLogs(); +// faultLogs.setCarVin(vin); +// faultLogs.setFaultCode("WEILAN"); +// faultLogs.setStartAlarmTime(DateUtils.getNowDate()); +// faultLogs.setAlarmFlag("Y"); +// faultLogs.setDisposeStatus("1"); //对象变json - ObjectMapper objectMapper = new ObjectMapper(); - String faultLog = objectMapper.writeValueAsString(faultLogs); +// ObjectMapper objectMapper = new ObjectMapper(); +// String faultLog = objectMapper.writeValueAsString(faultLogs); - rabbitTemplate.convertAndSend(MQQueueConstants.ALARM_QUEUE, faultLog , message -> { - message.getMessageProperties().setMessageId(IdUtils.fastSimpleUUID()); - return message; - }); +// rabbitTemplate.convertAndSend(MQQueueConstants.ALARM_QUEUE, faultLog , message -> { +// message.getMessageProperties().setMessageId(IdUtils.fastSimpleUUID()); +// return message; +// }); @@ -130,76 +122,9 @@ public class FenceAlarmImpl implements VehicleService { } } } - - - - } - System.out.println(carMarking); } - - - - - - - - - - - - - - for (Map.Entry entry : fence1.entrySet()) { - for (String s : split1) { - String key = entry.getKey(); - if (s.equals(key)){ - String value = (String) entry.getValue(); - - String[] split = value.split(";"); - - boolean withinFence = isWithinFence(pointLat, pointLng, Arrays.asList(split)); - - if (withinFence){ - log.info("车辆vin:"+vin+"------在电子围栏"+key+"---正常行驶---"); - }else { - log.info("车辆vin:"+vin+"------驶出电子围栏"+key+"---报警---"); - - String key1 = "fenceType1"; - - HashSet hashSet = new HashSet<>(); - fence.setCarVin(vin); - fence.setFenceType("驶出"); - fence.setFenceId(Integer.valueOf(key)); - - hashSet.add(fence); - redisService.setCacheSet(key1,hashSet); - redisService.expire(key1, 20, TimeUnit.MINUTES); // 设置过期时间 - } - - - FaultLogs faultLogs = new FaultLogs(); - faultLogs.setCarVin(vin); - faultLogs.setFaultCode("GTX007"); - faultLogs.setStartAlarmTime(DateUtils.getNowDate()); - faultLogs.setAlarmFlag("Y"); - faultLogs.setDisposeStatus("1"); - - - rabbitTemplate.convertAndSend(MQQueueConstants.ALARM_QUEUE, faultLogs , message -> { - message.getMessageProperties().setMessageId(IdUtils.fastSimpleUUID()); - return message; - }); - - - - - } - } - } - //false是除了围栏要报警 - } diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/StoredEventImpl.java b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/StoredEventImpl.java index 527e782..ee14d01 100644 --- a/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/StoredEventImpl.java +++ b/muyu-analyze/src/main/java/com/muyu/analyze/service/impl/StoredEventImpl.java @@ -1,19 +1,14 @@ package com.muyu.analyze.service.impl; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - import com.muyu.analyze.mapper.VehicleMapper; import com.muyu.analyze.service.VehicleService; import com.muyu.common.redis.service.RedisService; import com.muyu.system.common.domain.VehicleData; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; -import java.math.BigDecimal; import java.util.ArrayList; -import java.util.List; /** * @ProjectName: cloud-vehicles @@ -39,9 +34,9 @@ public class StoredEventImpl implements VehicleService { @Override public void eventResolution(VehicleData analyze) { + Integer cacheObject = redisService.getCacheObject("records:info:" + analyze.getVin()); - Integer id = (Integer)redisService.getCacheObject("records:info:" + analyze.getVin()); - analyze.setRecordsId(id); + analyze.setRecordsId(cacheObject); list.add(analyze); diff --git a/muyu-analyze/src/main/java/com/muyu/analyze/utils/Test.java b/muyu-analyze/src/main/java/com/muyu/analyze/utils/Test.java deleted file mode 100644 index acbd92f..0000000 --- a/muyu-analyze/src/main/java/com/muyu/analyze/utils/Test.java +++ /dev/null @@ -1,96 +0,0 @@ -//package com.muyu.analyze.utils; -// -//import lombok.extern.slf4j.Slf4j; -//import org.apache.kafka.clients.consumer.ConsumerConfig; -//import org.apache.kafka.clients.consumer.ConsumerRecords; -//import org.apache.kafka.clients.consumer.KafkaConsumer; -//import org.apache.kafka.clients.producer.KafkaProducer; -//import org.apache.kafka.clients.producer.ProducerConfig; -//import org.apache.kafka.clients.producer.ProducerRecord; -//import org.springframework.stereotype.Component; -// -//import javax.annotation.PostConstruct; -//import java.time.Duration; -//import java.util.Collections; -//import java.util.Properties; -// -///** -// * @ProjectName: cloud-vehicles -// * @PackageName: com.muyu.analyze.utils -// * @Description TODO -// * @Author HuangDaJu -// * @Date 2024/4/8 12:41 -// * @Version 1.0 -// */ -//@Component -//@Slf4j -//public class Test { -// -// private static final String TOPIC_NAME = "online"; -// private static final String BOOTSTRAP_SERVERS = "10.10.26.4:9092"; -// -// public static void main(String[] args) { -// //生产者示例 -// produceMessage(); -// -// //消费者示例 -// consumerMessages(); -// -// } -// -// //生产者 -// @PostConstruct -// private static void produceMessage() { -// Properties props = new Properties(); -// props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); -// props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer"); -// props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer"); -// -// KafkaProducer producer = new KafkaProducer<>(props); -// //创建生产者 -// try { -// -// //发送消息 -// for (int i = 0; i < 10000; i++) { -// String message = "佳佳来喽" + (i + 1); -// producer.send(new ProducerRecord<>(TOPIC_NAME, message)); -// -// System.out.println("发送消息:" + message); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } finally { -// producer.close(); -// } -// } -// -// //消费者 -// private static void consumerMessages() { -// Properties props = new Properties(); -// props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); -// props.put(ConsumerConfig.GROUP_ID_CONFIG, "my-consumer-group"); -// props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); -// props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); -// -// //创建消费者 -// KafkaConsumer consumer = new KafkaConsumer<>(props); -// -// try { -// -// //订阅主题 -// consumer.subscribe(Collections.singletonList(TOPIC_NAME)); -// -// //持续消费消息 -// while (true) { -// ConsumerRecords records = consumer.poll(Duration.ofMillis(100)); -// records.forEach(record -> { -// System.out.println("消费者接受到的消息值:" + record.value()); -// }); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } finally { -// consumer.close(); -// } -// } -//} diff --git a/muyu-load-center/src/main/java/com/aliyun/sample/AliyunEcsInstanceCreator.java b/muyu-load-center/src/main/java/com/aliyun/sample/AliyunEcsInstanceCreator.java deleted file mode 100644 index 6650206..0000000 --- a/muyu-load-center/src/main/java/com/aliyun/sample/AliyunEcsInstanceCreator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.aliyun.sample; - -import com.aliyuncs.DefaultAcsClient; -import com.aliyuncs.IAcsClient; -import com.aliyuncs.ecs.model.v20140526.CreateInstanceRequest; -import com.aliyuncs.ecs.model.v20140526.CreateInstanceResponse; -import com.aliyuncs.exceptions.ClientException; -import com.aliyuncs.profile.DefaultProfile; - -/** - * 阿里云ECS实例创建器示例类。 - * 本类用于演示如何通过阿里云SDK在Java中创建一个ECS实例。 - */ -public class AliyunEcsInstanceCreator { - - /** - * 主函数:创建一个阿里云ECS实例。 - * - * @param args 命令行参数(未使用) - * - * 注意:本示例中使用的AccessKeyId、AccessKeySecret、regionId、imageId、instanceType等信息为示意, - * 实际使用时需要替换为有效的阿里云账号信息。 - */ - public static void main(String[] args) { - // 设置阿里云账号的认证信息 - String accessKeyId = "LTAI5tANGefs2gi8nsu4AoSZ"; - String accessKeySecret = "Ut5RaJvvG7dP8hgK82qjdtvyUA6x8g"; - String regionId = "cn-zhangjiakou"; // 实例所在的地域ID - String instanceName = "Test"; // 实例名称 - String imageId = "m-8vb1u2bhootky8sgg2ft"; // 镜像ID - String instanceType = "ecs.t6-c2m1.large"; // 实例规格 - - // 初始化阿里云客户端 - DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret); - IAcsClient client = new DefaultAcsClient(profile); - - // 配置创建实例的请求参数 - CreateInstanceRequest request = new CreateInstanceRequest(); - request.setImageId(imageId); // 设置使用的镜像ID - request.setInstanceName(instanceName); // 设置实例名称 - request.setInstanceType(instanceType); // 设置实例规格 - - // 配置抢占式实例的属性 - request.setInstanceChargeType("PostPaid"); // 实例付费类型,此处为按量付费 - request.setSpotStrategy("SpotWithPriceLimit"); // 抢占式实例的出价策略,设置为有限价格 - - - request.setImageId(imageId); // 设置使用的镜像ID - request.setInstanceName(instanceName); // 设置实例名称 - request.setInstanceType(instanceType); // 设置实例规格 - - - // 配置网络和公网带宽 - request.setVSwitchId("vpc-8vbbw0obosvd5p5i2y5nq"); // 设置实例所在的子网ID - request.setInternetMaxBandwidthOut(5); // 设置公网出带宽上限,单位为Mbps - - - // 配置抢占式实例的属性 - request.setInstanceChargeType("PostPaid"); // 实例付费类型,此处为按量付费 - request.setSpotStrategy("SpotWithPriceLimit"); // 抢占式实例的出价策略,设置为有限价格 - - request.setSpotPriceLimit(1F); // 设置抢占式实例的最高每小时价格限制 - - - // 发送创建实例的请求并处理响应 - try { - CreateInstanceResponse response = client.getAcsResponse(request); - System.out.println("Instance Created: " + response.getInstanceId()); - } catch (ClientException e) { - e.printStackTrace(); - } - } -} diff --git a/muyu-modules/muyu-business/muyu-business-server/pom.xml b/muyu-modules/muyu-business/muyu-business-server/pom.xml index 8239d0c..011ae56 100644 --- a/muyu-modules/muyu-business/muyu-business-server/pom.xml +++ b/muyu-modules/muyu-business/muyu-business-server/pom.xml @@ -85,11 +85,7 @@ com.muyu muyu-file-remote - - - org.springframework.boot - spring-boot-starter-amqp - + diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/AlarmLogsController.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/AlarmLogsController.java index 389a60b..8d869d3 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/AlarmLogsController.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/AlarmLogsController.java @@ -5,26 +5,20 @@ import com.muyu.business.domain.req.AlarmLogsReq; import com.muyu.business.domain.req.AlarmLogsUpdReq; import com.muyu.business.domain.res.AlarmLogsResponse; import com.muyu.business.service.AlarmLogsService; -import com.muyu.common.core.constant.MQQueueConstants; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.annotation.RequiresPermissions; -import com.rabbitmq.client.Channel; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.rabbit.annotation.Queue; -import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.*; -import java.io.IOException; import java.util.List; /** @@ -106,31 +100,31 @@ public class AlarmLogsController extends BaseController { - @RabbitListener(queuesToDeclare = {@Queue(value = MQQueueConstants.ALARM_QUEUE, declare = "true")}) - public void sendSms(String alarmLog, Message message, Channel channel) { - log.info("消息队列:【{}】,收到报警日志:【{}】",MQQueueConstants.ALARM_QUEUE,alarmLog); - try { - String messageId = message.getMessageProperties().getMessageId(); - Long count = redisTemplate.opsForSet().add(MQQueueConstants.ALARM_QUEUE, messageId); - if (count.intValue() > 0){ - alarmLogsService.alarmLogsService(alarmLog); - // 消息确认 - channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); - log.info("消息队列:【{}】,收到报警日志:【{}】,消费成功...",MQQueueConstants.ALARM_QUEUE,alarmLog); - }else { - log.error("消息队列:【{}】,收到报警日志:【{}】,消费重复...",MQQueueConstants.ALARM_QUEUE,alarmLog); - } - } catch (IOException e) { - e.printStackTrace(); - log.error("消息队列:【{}】,收到报警日志:【{}】,消费异常:【{}】",MQQueueConstants.ALARM_QUEUE,alarmLog,e.getMessage()); - // 消息回退 - try { - channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true); - } catch (IOException ex) { - log.error("消息队列:【{}】,收到报警日志:【{}】,消息退回异常:【{}】",MQQueueConstants.ALARM_QUEUE,alarmLog,e.getMessage()); - } - } - } +// @RabbitListener(queuesToDeclare = {@Queue(value = MQQueueConstants.ALARM_QUEUE, declare = "true")}) +// public void sendSms(String alarmLog, Message message, Channel channel) { +// log.info("消息队列:【{}】,收到报警日志:【{}】",MQQueueConstants.ALARM_QUEUE,alarmLog); +// try { +// String messageId = message.getMessageProperties().getMessageId(); +// Long count = redisTemplate.opsForSet().add(MQQueueConstants.ALARM_QUEUE, messageId); +// if (count.intValue() > 0){ +// alarmLogsService.alarmLogsService(alarmLog); +// // 消息确认 +// channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); +// log.info("消息队列:【{}】,收到报警日志:【{}】,消费成功...",MQQueueConstants.ALARM_QUEUE,alarmLog); +// }else { +// log.error("消息队列:【{}】,收到报警日志:【{}】,消费重复...",MQQueueConstants.ALARM_QUEUE,alarmLog); +// } +// } catch (IOException e) { +// e.printStackTrace(); +// log.error("消息队列:【{}】,收到报警日志:【{}】,消费异常:【{}】",MQQueueConstants.ALARM_QUEUE,alarmLog,e.getMessage()); +// // 消息回退 +// try { +// channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true); +// } catch (IOException ex) { +// log.error("消息队列:【{}】,收到报警日志:【{}】,消息退回异常:【{}】",MQQueueConstants.ALARM_QUEUE,alarmLog,e.getMessage()); +// } +// } +// } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/FaultLogsController.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/FaultLogsController.java index c3b4567..12e1639 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/FaultLogsController.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/controller/FaultLogsController.java @@ -7,28 +7,22 @@ import com.muyu.business.domain.req.FaultLogsUpdReq; import com.muyu.business.domain.res.FaultLogsResponse; import com.muyu.business.service.AlarmLogsService; import com.muyu.business.service.FaultLogsService; -import com.muyu.common.core.constant.MQQueueConstants; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.annotation.RequiresPermissions; -import com.rabbitmq.client.Channel; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.rabbit.annotation.Queue; -import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.io.IOException; import java.util.List; /** @@ -115,29 +109,28 @@ public class FaultLogsController extends BaseController { return toAjax(faultLogsService.deleteFaultLogsByIds(logIds)); } - @RabbitListener(queuesToDeclare = {@Queue(value = MQQueueConstants.FAULT_QUEUE, declare = "true")}) - public void sendSms(FaultLogs faultLogs, Message message, Channel channel) { - log.info("消息队列:【{}】,收到故障日志:【{}】",MQQueueConstants.FAULT_QUEUE,faultLogs); - try { - String messageId = message.getMessageProperties().getMessageId(); - Long count = redisTemplate.opsForSet().add(MQQueueConstants.FAULT_QUEUE, messageId); - if (count.intValue() > 0){ - faultLogsService.insertFaultLogs(faultLogs); - // 消息确认 - channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); - log.info("消息队列:【{}】,收到故障日志:【{}】,消费成功...",MQQueueConstants.FAULT_QUEUE,faultLogs); - }else { - log.error("消息队列:【{}】,收到故障日志:【{}】,消费重复...",MQQueueConstants.FAULT_QUEUE,faultLogs); - } - } catch (IOException e) { - e.printStackTrace(); - log.error("消息队列:【{}】,收到故障日志:【{}】,消费异常:【{}】",MQQueueConstants.FAULT_QUEUE,faultLogs,e.getMessage()); - // 消息回退 - try { - channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true); - } catch (IOException ex) { - log.error("消息队列:【{}】,收到故障日志:【{}】,消息退回异常:【{}】",MQQueueConstants.FAULT_QUEUE,faultLogs,e.getMessage()); - } - } - } +// @RabbitListener(queuesToDeclare = {@Queue(value = MQQueueConstants.FAULT_QUEUE, declare = "true")}) +// public void sendSms(FaultLogs faultLogs, Message message, Channel channel) { +// log.info("消息队列:【{}】,收到故障日志:【{}】",MQQueueConstants.FAULT_QUEUE,faultLogs); +// try { +// String messageId = message.getMessageProperties().getMessageId(); +// Long count = redisTemplate.opsForSet().add(MQQueueConstants.FAULT_QUEUE, messageId); +// if (count.intValue() > 0){ +// faultLogsService.insertFaultLogs(faultLogs); +// // 消息确认 +// channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); +// log.info("消息队列:【{}】,收到故障日志:【{}】,消费成功...",MQQueueConstants.FAULT_QUEUE,faultLogs); +// }else { +// log.error("消息队列:【{}】,收到故障日志:【{}】,消费重复...",MQQueueConstants.FAULT_QUEUE,faultLogs); +// } +// } catch (IOException e) { +// e.printStackTrace(); +// log.error("消息队列:【{}】,收到故障日志:【{}】,消费异常:【{}】",MQQueueConstants.FAULT_QUEUE,faultLogs,e.getMessage()); +// // 消息回退 +// try { +// channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true); +// } catch (IOException ex) { +// log.error("消息队列:【{}】,收到故障日志:【{}】,消息退回异常:【{}】",MQQueueConstants.FAULT_QUEUE,faultLogs,e.getMessage()); +// } + } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/AlarmLogsServiceImpl.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/AlarmLogsServiceImpl.java index 65f2736..956c807 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/AlarmLogsServiceImpl.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/AlarmLogsServiceImpl.java @@ -13,7 +13,7 @@ import com.muyu.business.service.FaultLogsService; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.redis.service.RedisService; import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.rabbit.core.RabbitTemplate; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -52,8 +52,7 @@ public class AlarmLogsServiceImpl extends ServiceImpl selectAlarmLogsList(AlarmLogsReq alarmLogsReq) { diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/RecordsServiceImpl.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/RecordsServiceImpl.java index 370691e..143a4da 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/RecordsServiceImpl.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/RecordsServiceImpl.java @@ -35,6 +35,7 @@ public class RecordsServiceImpl extends ServiceImpl @Autowired private RedisService redisService; + /** * @author YinYuYang * @date 2024/4/5 11:10 @@ -91,7 +92,11 @@ public class RecordsServiceImpl extends ServiceImpl recordsMapper.insert(records); Integer recordsId = records.getRecordsId(); - redisService.setCacheSet("records:info:"+vin,recordsId); + + /* + *上线缓存id,为历史轨迹做准备 + */ + redisService.setCacheObject("records:info:"+vin,recordsId); return recordsId; } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/sms/SendSmsConfig.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/sms/SendSmsConfig.java deleted file mode 100644 index a51efe9..0000000 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/sms/SendSmsConfig.java +++ /dev/null @@ -1,34 +0,0 @@ -//package com.muyu.business.sms; -// -//import com.muyu.business.service.AlarmLogsService; -//import com.muyu.business.service.FaultLogsService; -//import lombok.extern.slf4j.Slf4j; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.data.redis.core.StringRedisTemplate; -//import org.springframework.stereotype.Component; -// -//@Slf4j -//@Component -//public class SendSmsConfig { -// -// /** -// * 注入redis工具类 -// */ -// @Autowired -// private StringRedisTemplate redisTemplate; -// -// /** -// * 注入报警日志服务 -// */ -// @Autowired -// private AlarmLogsService alarmLogsService; -// -// /** -// * 注入故障日志服务 -// */ -// @Autowired -// private FaultLogsService faultLogsService; -// -// -// -//} diff --git a/pom.xml b/pom.xml index be8466a..7512613 100644 --- a/pom.xml +++ b/pom.xml @@ -301,6 +301,7 @@ muyu-common muyu-analyze muyu-load-center + aliyun-api