Преглед изворни кода

oss-store 引入 oss-sdk 依赖以便使用 OssConsoleClient

reghao пре 2 година
родитељ
комит
473006af9c

+ 5 - 0
oss-store/pom.xml

@@ -53,6 +53,11 @@
             <artifactId>oss-api</artifactId>
             <version>1.0.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>cn.reghao.oss</groupId>
+            <artifactId>oss-sdk</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>
 
         <dependency>
             <groupId>org.projectlombok</groupId>

+ 24 - 0
oss-store/src/main/java/cn/reghao/oss/store/config/BeansConfig.java

@@ -0,0 +1,24 @@
+package cn.reghao.oss.store.config;
+
+import cn.reghao.jutil.jdk.machine.id.MachineId;
+import cn.reghao.jutil.jdk.machine.id.MachineIdLinux;
+import cn.reghao.oss.sdk.OssConsoleClient;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author reghao
+ * @date 2024-02-28 11:11:04
+ */
+@Configuration
+public class BeansConfig {
+    @Bean
+    public OssConsoleClient ossConsoleClient(OssProperties ossProperties) {
+        return new OssConsoleClient(ossProperties.getConsoleEndpoint());
+    }
+
+    @Bean
+    public MachineId machineId() {
+        return new MachineIdLinux();
+    }
+}

+ 16 - 4
oss-store/src/main/java/cn/reghao/oss/store/config/spring/AppLifecycle.java

@@ -1,10 +1,11 @@
 package cn.reghao.oss.store.config.spring;
 
-import cn.reghao.jutil.jdk.machine.id.MachineIdLinux;
+import cn.reghao.jutil.jdk.machine.id.MachineId;
 import cn.reghao.jutil.jdk.result.WebResult;
 import cn.reghao.jutil.jdk.serializer.JsonConverter;
 import cn.reghao.jutil.jdk.store.LocalStores;
 import cn.reghao.jutil.jdk.store.SubDirCount;
+import cn.reghao.oss.sdk.OssConsoleClient;
 import cn.reghao.oss.store.config.SpringProperties;
 import cn.reghao.oss.store.db.mapper.DataBlockMapper;
 import cn.reghao.oss.store.task.FileTask;
@@ -36,16 +37,25 @@ public class AppLifecycle implements ApplicationRunner, DisposableBean {
     private final DataBlockMapper dataBlockMapper;
     private final FileTask fileTask;
     private final SpringProperties springProperties;
+    private final MachineId machineId;
+    private OssConsoleClient ossConsoleClient;
 
-    public AppLifecycle(DataBlockMapper dataBlockMapper, FileTask fileTask, SpringProperties springProperties) {
+    public AppLifecycle(DataBlockMapper dataBlockMapper, FileTask fileTask, SpringProperties springProperties,
+                        MachineId machineId, OssConsoleClient ossConsoleClient) {
         this.dataBlockMapper = dataBlockMapper;
         this.fileTask = fileTask;
         this.springProperties = springProperties;
+        this.machineId = machineId;
+        this.ossConsoleClient = ossConsoleClient;
     }
 
     @Override
     public void run(ApplicationArguments args) throws Exception {
-        register();
+        try {
+            register();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         initLocalStore();
 
         log.info("执行文件任务...");
@@ -83,11 +93,13 @@ public class AppLifecycle implements ApplicationRunner, DisposableBean {
 
     private void register() throws Exception {
         Map<String, String> map = new HashMap<>();
-        map.put("ipv4Addr", new MachineIdLinux().ipv4());
+        map.put("ipv4Addr", machineId.ipv4());
         map.put("httpPort", springProperties.getHttpPort()+"");
         map.put("rpcPort", springProperties.getRpcPort()+"");
         String jsonPayload = JsonConverter.objectToJson(map);
 
+        ossConsoleClient.registerNode(jsonPayload);
+
         String api = String.format("%s/api/oss/store/node/register", springProperties.getConsoleEndpoint());
         HttpClient httpClient = HttpClient.newBuilder().build();
         HttpRequest httpRequest = HttpRequest.newBuilder(new URI(api))