commit 2f90c610b5890ec585076591f4ced5dcc5e1761f
Author: rouchen <3133657697@qq.com>
Date: Thu May 30 21:51:57 2024 +0800
feat mqtt监听
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..c932398
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,193 @@
+
+
+ 4.0.0
+ com.car
+ zn-car
+ 0.0.1-SNAPSHOT
+ zn-car
+ Demo project for Spring Boot
+
+ 17
+ UTF-8
+ UTF-8
+ 2.6.13
+
+
+
+
+ spring-boot-starter-parent
+ org.springframework.boot
+ 2.6.2
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ io.lettuce
+ lettuce-core
+
+
+
+
+ redis.clients
+ jedis
+
+
+ org.redisson
+ redisson
+ 3.16.0
+
+
+
+ org.apache.httpcomponents
+ httpcore
+ 4.4.12
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.13
+
+
+
+ org.apache.commons
+ commons-lang3
+ 3.12.0
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.2.8
+
+
+
+
+ javax.servlet
+ javax.servlet-api
+ provided
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.11
+ runtime
+
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 2.2.2
+
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ 1.4.1
+
+
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ commons-lang
+ commons-lang
+ 2.6
+
+
+
+ com.alibaba
+ fastjson
+ 1.2.79
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-quartz
+
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+
+
+
+ com.aliyun
+ ecs20140526
+ 5.1.8
+
+
+ org.springframework.boot
+ spring-boot-starter-amqp
+ 2.3.7.RELEASE
+
+
+
+
+ org.eclipse.paho
+ org.eclipse.paho.client.mqttv3
+ 1.2.5
+
+
+ org.apache.commons
+ commons-lang3
+ 3.12.0
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 11
+ 11
+ UTF-8
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.3.7.RELEASE
+
+ com.bwie.BootStudentApplication
+
+
+
+ repackage
+
+ repackage
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/car/ZnCarApplication.java b/src/main/java/com/car/ZnCarApplication.java
new file mode 100644
index 0000000..27c3eec
--- /dev/null
+++ b/src/main/java/com/car/ZnCarApplication.java
@@ -0,0 +1,13 @@
+package com.car;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class ZnCarApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(ZnCarApplication.class, args);
+ }
+
+}
diff --git a/src/main/java/com/car/config/InitConnectWeight.java b/src/main/java/com/car/config/InitConnectWeight.java
new file mode 100644
index 0000000..bcdc01b
--- /dev/null
+++ b/src/main/java/com/car/config/InitConnectWeight.java
@@ -0,0 +1,209 @@
+package com.car.config;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.aliyun.ecs20140526.Client;
+import com.aliyun.ecs20140526.models.DescribeInstancesRequest;
+import com.aliyun.ecs20140526.models.DescribeInstancesResponse;
+import com.aliyun.tea.TeaException;
+import com.aliyun.teautil.models.RuntimeOptions;
+import com.car.demos.ConnectWeight;
+import com.car.service.impl.ConnectServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.http.*;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 初始化连接权重 InitConnectWeight
+ *
+ * @author Yangle
+ * Date 2024/5/28 21:41
+ */
+@Component
+@Slf4j
+public class InitConnectWeight implements ApplicationRunner {
+
+ @Autowired
+ private RedisTemplate redisTemplate;
+
+ @Autowired
+ private RestTemplate restTemplate;
+ @Autowired
+ private ConnectServiceImpl connectService;
+
+ @Override
+ public void run(ApplicationArguments args) {
+
+ ArrayList connectWeightList = new ArrayList<>();
+
+ ArrayList ipList = new ArrayList<>();
+
+ Client client = null;
+ //获取阿里云客户端
+ try {
+ client = ConnectServiceImpl.createClient();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ //获取所有实例
+ DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest()
+ .setRegionId("cn-shanghai")
+ .setStatus("Running");;
+ RuntimeOptions runtime = new RuntimeOptions();
+ try {
+ // 复制代码运行请自行打印 API 的返回值
+ DescribeInstancesResponse describeInstancesResponse = client.describeInstancesWithOptions(describeInstancesRequest, runtime);
+
+ // 获取实例ip
+ List> ipListList = describeInstancesResponse.getBody().instances.getInstance().stream().map(instance -> instance.publicIpAddress.ipAddress).collect(Collectors.toList());
+ for (List strings : ipListList) {
+ for (String ip : strings) {
+ ipList.add(ip);
+ }
+ System.out.println("------------------------");
+ }
+
+ } 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);
+ }
+
+
+ //遍历所有ip,获取每一个服务的连接数
+ for (String ip : ipList) {
+ //fluxMq连接
+ String url = "http://" + ip + ":8080/public/login";
+ Map request = new HashMap<>();
+ request.put("username", "fluxmq");
+ request.put("password", "fluxmq");
+ HttpHeaders httpHeaders = new HttpHeaders();
+ httpHeaders.setContentType(MediaType.APPLICATION_JSON);
+ HttpEntity