Kaynağa Gözat

增加部署文档

lijie 3 yıl önce
ebeveyn
işleme
eff1785ed5

+ 36 - 0
docker/dockerfiles/adm-middleware/Dockerfile

@@ -0,0 +1,36 @@
+#构建此镜像的基础镜像
+FROM java:8-jre
+#指定作者名称
+MAINTAINER lijie<lijie@persagy.com>
+
+#定义标签属性
+LABEL tier=backend
+LABEL product=saas
+LABEL project=adm-middleware
+LABEL name=adm-middleware
+
+#设置环境变量
+ENV JAVA_OPTS -Dfile.encoding=UTF-8 -Xms2048m -Xmx2048m
+ENV TZ Asia/Shanghai
+#ARG 可以接收docker build命令中以--build-arg 指定的参数
+ARG WORKER_HOME
+
+#执行的命令
+RUN apt-get install -y --no-install-recommends tzdata && rm -rf /var/lib/apt/lists/*
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime	&& echo 'Asia/Shanghai' > /etc/timezone
+
+RUN mkdir -p $WORKER_HOME/config
+
+#复制文件到容器内
+COPY *.jar $WORKER_HOME/app.jar
+COPY entrypoint.sh $WORKER_HOME/
+COPY version.txt $WORKER_HOME/
+COPY config $WORKER_HOME/config
+#设置工作目录
+WORKDIR $WORKER_HOME
+
+#查看上述复制的文件,是否复制成功
+RUN ls
+
+#启动执行
+ENTRYPOINT ["sh","./entrypoint.sh"]

+ 3 - 0
docker/dockerfiles/adm-middleware/entrypoint.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+echo "entrypoint run..."
+java -jar $JAVA_OPTS -DCONFIG_FILE_PATH=/data/SpringCloud app.jar

+ 101 - 0
docker/k8sfiles/adm-middleware-dev.yml

@@ -0,0 +1,101 @@
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: adm-middleware
+  labels:
+    app: adm-middleware
+spec:
+  selector:
+    app: adm-middleware
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: adm-middleware
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: adm-middleware
+  template:
+    metadata:
+      labels:
+        app: adm-middleware
+    spec:
+      hostAliases:
+        - ip: "192.168.100.90"
+          hostnames:
+            - "node1"
+            - "namenode"
+            - "secondarynamenode"
+            - "zookeeper1"
+        - ip: "192.168.100.91"
+          hostnames:
+            - "node2"
+            - "datanode1"
+            - "zookeeper2"
+        - ip: "192.168.100.92"
+          hostnames:
+            - "node3"
+            - "datanode2"
+            - "zookeeper3"
+      volumes:
+        - name: springcloud
+          configMap:
+            name: springcloud
+            defaultMode: 0777
+            items:
+              - key: bootstrap.yml
+                path: path/to/application.yml
+      containers:
+        - name: adm-middleware
+          image: labisenlin.persagy.com/library/adm-middleware:latest
+          imagePullPolicy: Always
+          volumeMounts:
+            - name: springcloud
+              mountPath: /data/SpringCloud/bootstarp.yml
+              subPath: path/to/application.yml
+          env:
+            - name: TZ
+              value: Asia/Shanghai
+            - name: JAVA_OPTS
+              value: -Dfile.encoding=UTF-8
+            - name: SERVER_PORT
+              value: "8876"
+            - name: SPRING_CLOUD_CONFIG_URI
+              valueFrom:
+                configMapKeyRef:
+                  name: adm-middleware
+                  key: spring.cloud.config.uri
+            - name: SPRING_PROFILES_ACTIVE
+              valueFrom:
+                configMapKeyRef:
+                  name: adm-middleware
+                  key: spring.profiles.active
+            - name: SPRING_CLOUD_CONFIG_PROFILE
+              valueFrom:
+                configMapKeyRef:
+                  name: adm-middleware
+                  key: spring.cloud.config.profile
+            - name: EUREKA_CLIENT_FETCH_REGISTRY
+              valueFrom:
+                configMapKeyRef:
+                  name: adm-middleware
+                  key: eureka.client.fetch-registry
+            - name: EUREKA_CLIENT_REGISTER_WITH_EUREKA
+              valueFrom:
+                configMapKeyRef:
+                  name: adm-middleware
+                  key: eureka.client.register-with-eureka
+            - name: EUREKA_CLIENT_DEFAULT_ZONE
+              valueFrom:
+                configMapKeyRef:
+                  name: adm-middleware
+                  key: eureka.client.default.zone
+            - name: EUREKA_INSTANCE_IP_ADDRESS
+              valueFrom:
+                configMapKeyRef:
+                  name: adm-middleware
+                  key: eureka.instance.ip.address

+ 77 - 0
docker/k8sfiles/adm-middleware.yml

@@ -0,0 +1,77 @@
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: adm-middleware
+  labels:
+    app: adm-middleware
+spec:
+  selector:
+    app: adm-middleware
+  ports:
+  - port: 8876
+    targetPort: 8876
+    name: server-port
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: adm-middleware
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: adm-middleware
+  template:
+    metadata:
+      labels:
+        app: adm-middleware
+    spec:
+      containers:
+      - name: adm-middleware
+        image: labisenlin.persagy.com/library/adm-middleware:latest
+        imagePullPolicy: Always
+        ports:
+        - containerPort: 9986
+          name: server-port
+        env:
+        - name: TZ
+          value: Asia/Shanghai
+        - name: SERVER_PORT
+          value: "8876"
+        - name: SPRING_CLOUD_CONFIG_URI
+          valueFrom:
+            configMapKeyRef:
+              name: adm-middleware
+              key: spring.cloud.config.uri
+        - name: SPRING_PROFILES_ACTIVE
+          valueFrom:
+            configMapKeyRef:
+              name: adm-middleware
+              key: spring.profiles.active
+        - name: SPRING_CLOUD_CONFIG_PROFILE
+          valueFrom:
+            configMapKeyRef:
+              name: adm-middleware
+              key: spring.cloud.config.profile
+        - name: EUREKA_CLIENT_FETCH_REGISTRY
+          valueFrom:
+            configMapKeyRef:
+              name: adm-middleware
+              key: eureka.client.fetch-registry
+        - name: EUREKA_CLIENT_REGISTER_WITH_EUREKA
+          valueFrom:
+            configMapKeyRef:
+              name: adm-middleware
+              key: eureka.client.register-with-eureka
+        - name: EUREKA_CLIENT_DEFAULT_ZONE
+          valueFrom:
+            configMapKeyRef:
+              name: adm-middleware
+              key: eureka.client.default.zone
+        - name: EUREKA_INSTANCE_IP_ADDRESS
+          valueFrom:
+            configMapKeyRef:
+              name: adm-middleware
+              key: eureka.instance.ip.address

+ 10 - 27
src/main/java/com/persagy/proxy/adm/controller/AdmRelCalController.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.controller;
 
+import cn.hutool.core.collection.CollUtil;
 import com.persagy.dmp.common.exception.BusinessException;
 import com.persagy.proxy.adm.constant.AdmCommonConstant;
 import com.persagy.proxy.adm.constant.AdmRelationTypeEnum;
@@ -51,7 +52,7 @@ public class AdmRelCalController {
                                               HttpServletRequest request) throws Exception {
         // 组装上下文条件
         InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
-        admRelCalService.calcRelation(context,getAdmRelationTypeEnum(request),objectTypeStr,relationTypeStr);
+        admRelCalService.calcRelation(context,CollUtil.newArrayList(getAdmRelationTypeEnum(request)),objectTypeStr,relationTypeStr);
         return AdmResponse.success(new ArrayList<>());
     }
 
@@ -80,7 +81,7 @@ public class AdmRelCalController {
                                               HttpServletRequest request) throws Exception {
         // 组装上下文条件
         InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
-        admRelCalService.calcRelation(context,getAdmRelationTypeEnum(request),objectTypeStr,relationTypeStr);
+        admRelCalService.calcRelation(context, CollUtil.newArrayList(getAdmRelationTypeEnum(request)),objectTypeStr,relationTypeStr);
         return AdmResponse.success(new ArrayList<>());
     }
 
@@ -268,7 +269,13 @@ public class AdmRelCalController {
         // 资产暂时未引入,直接返回成功
         // 组装上下文条件
         InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
-        // admRelCalService.calcRelation(context,relType,objectTypeStr,relationTypeStr);
+        Map<String, AdmRelationTypeEnum> relationTypeMap = AdmRelationTypeEnum.getRelationTypeMap();
+        if (!relationTypeMap.containsKey("eq2bd") || !relationTypeMap.containsKey("sy2bd")){
+            throw new BusinessException(BusinessErrorRwdCode.A7201.getCode(),BusinessErrorRwdCode.A7201.getDesc());
+        }
+        ArrayList<AdmRelationTypeEnum> admRelationTypeEnums =
+                CollUtil.newArrayList(relationTypeMap.get("eq2bd"), relationTypeMap.get("sy2bd"));
+        admRelCalService.calcRelation(context,admRelationTypeEnums,objectTypeStr,relationTypeStr);
         return AdmResponse.success(new ArrayList<>());
     }
     /***
@@ -319,30 +326,6 @@ public class AdmRelCalController {
         return AdmResponse.success(new ArrayList<>());
     }
 
-//    /***
-//     * Description: 添加关系(图类型关系为ThroughRelationship)
-//     * @param relType : 关系类型
-//     * @param objectTypeStr : 参与计算的业务空间(为空表示所有业务空间类型),以英文逗号隔开 HeatingZone,CleanZone,
-//     *                      DomesticWaterSupplyZone,NetworkZone,TenantZone,AirConditioningZone,FunctionZone,
-//     *                      FireZone,SecurityZone,GeneralZone,PowerSupplyZone,LightingZone
-//     * sign: 更改计算标记
-//     * @return : com.persagy.proxy.adm.request.AdmCreateResponse
-//     * @author : lijie
-//     * @date :2021/8/31 12:10
-//     * Update By lijie 2021/8/31 12:10
-//     */
-//    @PostMapping(value = {"sign"})
-//    public AdmResponse throughRelationshipCalcRelation( @PathVariable("relType") String relType,
-//                                                        @QueryParam("projectId") String projectId,
-//                                                        @QueryParam("objectTypes") String objectTypeStr,
-//                                                        @QueryParam("relationType") String relationTypeStr) throws Exception {
-//        // 资产暂时未引入,直接返回成功
-//        // 组装上下文条件
-//        InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
-//        // admRelCalService.calcRelation(context,relType,objectTypeStr,relationTypeStr);
-//        return AdmResponse.success(new ArrayList<>());
-//    }
-
     /***
      * Description: 更改计算标记
      * @param relType : 关系类型

+ 4 - 2
src/main/java/com/persagy/proxy/adm/service/AdmRelCalService.java

@@ -8,6 +8,8 @@ import com.persagy.proxy.adm.request.AdmCreateResponse;
 import com.persagy.proxy.adm.request.AdmResponse;
 import com.persagy.proxy.common.entity.InstanceUrlParam;
 
+import java.util.List;
+
 /***
  * Description: 关系计算逻辑处理接口
  * @author : lijie
@@ -19,7 +21,7 @@ public interface AdmRelCalService {
     /***
      * Description: 计算关系
      * @param context : 请求参数
-     * @param admRelationTypeEnum : 关系类型
+     * @param admRelationTypeEnums : 关系类型集合
      * @param objectTypeStr : 参与计算的业务空间(为空表示所有业务空间类型)
      * @param relationTypeStr : 关系类型
      * @return : void
@@ -27,5 +29,5 @@ public interface AdmRelCalService {
      * @date :2021/9/11 20:35
      * Update By lijie 2021/9/11 20:35
      */
-    void calcRelation(InstanceUrlParam context, AdmRelationTypeEnum admRelationTypeEnum, String objectTypeStr, String relationTypeStr);
+    void calcRelation(InstanceUrlParam context, List<AdmRelationTypeEnum> admRelationTypeEnums, String objectTypeStr, String relationTypeStr);
 }

+ 13 - 9
src/main/java/com/persagy/proxy/adm/service/impl/AdmRelCalServiceImpl.java

@@ -10,6 +10,8 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 @Slf4j
 @RequiredArgsConstructor
@@ -18,7 +20,7 @@ public class AdmRelCalServiceImpl implements AdmRelCalService {
     /***
      * Description: 计算关系
      * @param context : 请求参数
-     * @param admRelationTypeEnum : 关系类型
+     * @param admRelationTypeEnums : 关系类型集合
      * @param objectTypeStr : 参与计算的业务空间(为空表示所有业务空间类型)
      * @param relationTypeStr : 关系类型
      * return : void
@@ -27,14 +29,16 @@ public class AdmRelCalServiceImpl implements AdmRelCalService {
      * Update By lijie 2021/9/11 20:35
      */
     @Override
-    public void calcRelation(InstanceUrlParam context, AdmRelationTypeEnum admRelationTypeEnum, String objectTypeStr,
+    public void calcRelation(InstanceUrlParam context, List<AdmRelationTypeEnum> admRelationTypeEnums, String objectTypeStr,
                              String relationTypeStr) {
-        // 调用中台的计算逻辑
-        DigitalRelationCaclFacade.calculatingObjRelationPrototype(context.getGroupCode(),context.getProjectId(),
-                context.getAppId(), CommonConstant.DEFAULT_ID, RequestData.builder()
-                        .graphCode(admRelationTypeEnum.getGraphCode())
-                        .relCode(admRelationTypeEnum.getRelCode())
-                        .calBeforeRelFlag(true)
-                        .build());
+        for (AdmRelationTypeEnum admRelationTypeEnum : admRelationTypeEnums) {
+            // 调用中台的计算逻辑
+            DigitalRelationCaclFacade.calculatingObjRelationPrototype(context.getGroupCode(),context.getProjectId(),
+                    context.getAppId(), CommonConstant.DEFAULT_ID, RequestData.builder()
+                            .graphCode(admRelationTypeEnum.getGraphCode())
+                            .relCode(admRelationTypeEnum.getRelCode())
+                            .calBeforeRelFlag(true)
+                            .build());
+        }
     }
 }