微服务迁移k8s

调整项目根目录下的pom.xml

3.0.2 org.apache.dubbo dubbo-registry-dns ${dubbo.version}

调整bootstrap-backend和bootstrap-provider的pom.xml

org.apache.dubbo dubbo-registry-dns org.springframework.boot spring-boot-starter-actuator io.micrometer micrometer-registry-prometheus org.eclipse.jkube kubernetes-maven-plugin 1.7.0 false tpdev/micro-auth-provider:%v-k8s registry.cn-hangzhou.aliyuncs.com registry.cn-hangzhou.aliyuncs.com/tpdev/openjdk-alpine:1.0.2 linux/amd64 latest ${revision} 20880 8080 sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories apk add --update ttf-dejavu && rm -rf /var/cache/apk/* echo "Asia/Shanghai" > /etc/timezone java -javaagent:/skywalking-agent/skywalking-agent.jar -jar $JAVA_OPTS maven/${project.artifactId}-${project.version}.jar jkube resource build

调整application.yml

调整apollo中的配置:
dubbo: application: # 此名称务必与将要创建的k8s服务名称保持一致,否则服务无法发现 name: micro-auth-provider qosEnable: true qosAcceptForeignIp: true metadataServicePort: 20885 config: ignore-duplicated-interface: true registry: address: dns://${DNS_SERVER:coredns.kube-system}:${DNS_PORT:53}?registry-type=service&duplicate=false&addressSuffix=.toplion.svc.cluster.local. consumer: timeout: 10000 # 必须配置,k8s中服务发现需要用到,指向服务提供者的k8s服务名称,多个服务名称用英文逗号分隔 provided-by: ${DUBBO_PROVIDED_BY:common-provider}

禁用原logback配置

重命名bootstrap项目下src/main/resources/logback-spring.xml为logback-spring.xml.1

推送分支

mvn clean package k8s:build k8s:push
推送完成后登录kubesphere完成后续步骤,登录名为toplion,密码为Tp234567
4.0.0 pom org.springframework.boot spring-boot-starter-parent 2.5.10 com.toplion micro-resource-center ${revision} bootstrap-backend bootstrap-provider common-api school-api school-provider school-backend place-api place-provider place-backend unit-api unit-provider unit-backend major-api major-provider major-backend class-info-api class-info-provider class-info-backend grade-info-api grade-info-provider grade-info-backend academic-semester-api academic-semester-provider academic-semester-backend subject-category-api subject-category-provider subject-category-backend student-api student-provider student-backend teacher-api teacher-provider teacher-backend 8 8 1.0.0 true 3.0.2 3.17.2 3.7.1 1.17.1 3.5.0 1.4.2.Final 3.0.0 1.6.3 1.9.6 2.0.0.RELEASE 5.7.17 3.4.12 12.0.2 org.apache.dubbo dubbo-registry-dns ${dubbo.version} org.apache.dubbo dubbo-spring-boot-starter ${dubbo.version} org.apache.dubbo dubbo ${dubbo.version} org.springframework spring-context org.apache.dubbo dubbo-dependencies-zookeeper ${dubbo.version} pom com.google.protobuf protobuf-java ${protobuf.version} io.grpc grpc-all ${grpc.version} com.baomidou mybatis-plus-boot-starter ${mybatis-plus.version} org.mapstruct mapstruct ${mapstruct.version} org.apache.commons commons-lang3 3.11 com.ctrip.framework.apollo apollo-client 1.9.2 org.springframework.boot spring-boot-starter org.apache.dubbo dubbo com.google.protobuf protobuf-java org.apache.dubbo dubbo-dependencies-zookeeper org.apache.zookeeper zookeeper pom org.apache.zookeeper zookeeper 3.4.12 io.grpc grpc-all org.springframework.boot spring-boot-starter-test test org.projectlombok lombok org.mapstruct mapstruct org.apache.commons commons-lang3 org.keycloak keycloak-spring-boot-starter ${org.keycloak.version} com.toplion static-common-resource-common-api 1.0.0-SNAPSHOT alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ false nexus account Repository http://nexus.p1024.top/repository/maven-snapshots true always javax.annotation [1.11,) javax.annotation javax.annotation-api 1.3.2 release release org.apache.maven.plugins maven-deploy-plugin ${maven-deploy-plugin.version} default-deploy true deploy-file deploy deploy-file ${project.build.directory}/${project.artifactId}-${project.version}.jar http://nexus.p1024.top/repository/maven-releases nexus-releases ${project.groupId} micro-resource-center-${artifactId} ${project.version} snapshot true org.apache.maven.plugins maven-deploy-plugin ${maven-deploy-plugin.version} default-deploy true deploy-file deploy deploy-file ${project.build.directory}/${project.artifactId}-${project.version}.jar http://nexus.p1024.top/repository/maven-snapshots nexus-snapshots ${project.groupId} micro-resource-center-${artifactId} ${project.version}-SNAPSHOT kr.motd.maven os-maven-plugin 1.6.1 org.springframework.boot spring-boot-maven-plugin true org.xolstice.maven.plugins protobuf-maven-plugin 0.6.1 com.google.protobuf:protoc:${protoc.version}:exe:${os.detected.classifier} grpc-java io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier} dubbo org.apache.dubbo dubbo-compiler 0.0.3 org.apache.dubbo.gen.dubbo.Dubbo3Generator compile test-compile compile-custom test-compile-custom org.apache.maven.plugins maven-compiler-plugin ${maven-compiler-plugin.version} ${maven.compiler.source} ${maven.compiler.source} org.projectlombok lombok ${lombok.version} org.mapstruct mapstruct-processor ${mapstruct.version} org.apache.maven.plugins maven-dependency-plugin 3.2.0 sources resolve org.apache.maven.plugins maven-checkstyle-plugin 3.1.2 checkstyle.xml UTF-8 true true false true validate validate check org.eclipse.jkube kubernetes-maven-plugin 1.7.0 true
spring: jmx.enabled: false application: name: micro-resource-center-backend main: allow-circular-references: true security: user: name: toplion password: toplion
dubbo: application: # 此名称务必与将要创建的k8s服务名称保持一致,否则服务无法发现 name: micro-resource-center-backend qosEnable: true qosAcceptForeignIp: true metadataServicePort: 20885 config: ignore-duplicated-interface: true registry: address: dns://${DNS_SERVER:coredns.kube-system}:${DNS_PORT:53}?registry-type=service&duplicate=false&addressSuffix=.toplion.svc.cluster.local.
# registry: # address: zookeeper://192.168.80.249:2181?timeout=30000 consumer: timeout: 10000 retries: 0 check: false # 必须配置,k8s中服务发现需要用到,指向服务提供者的k8s服务名称,多个服务名称用英文逗号分隔 provided-by: ${DUBBO_PROVIDED_BY:micro-resource-center-provider}
keycloak: enabled: true realm: toplion auth-server-url: http://iot-sso.toplion.com.cn/auth resource: toplion-client public-client: true cors: true cors-allowed-methods: GET,POST,PUT,DELETE,OPTIONS cors-max-age: 1200 server: port: 8082
spring: jmx.enabled: false application: name: micro-resource-center-provider main: allow-circular-references: true web-application-type: none datasource: url: jdbc:mysql://rm-m5eph3132vb09gqi1.mysql.rds.aliyuncs.com:3306/micro_resource_center?characterEncoding=utf-8&autoReconnect=true&useSSL=true&serverTimezone=Asia/Shanghai&socketTimeout=30000&connectTimeout=60000&useLocalSessionState=true username: tpdev password: tp234567 tomcat: init-s-q-l: "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;" test-on-borrow: true validation-query: select 1 test-on-connect: true test-on-return: true test-while-idle: true hikari: minimum-idle: 10 idle-timeout: 30000 maximum-pool-size: 50 mvc: pathmatch: matching-strategy: ant_path_matcher # dubbo配置 dubbo: application: # 此名称务必与将要创建的k8s服务名称保持一致,否则服务无法发现 name: micro-resource-center-provider qosEnable: true qosAcceptForeignIp: true metadataServicePort: 20885 config: ignore-duplicated-interface: true registry: address: dns://${DNS_SERVER:coredns.kube-system}:${DNS_PORT:53}?registry-type=service&duplicate=false&addressSuffix=.toplion.svc.cluster.local. consumer: timeout: 10000 # 必须配置,k8s中服务发现需要用到,指向服务提供者的k8s服务名称,多个服务名称用英文逗号分隔 provided-by: ${DUBBO_PROVIDED_BY:}
protocol: name: dubbo port: 20880 provider: timeout: 100000 retries: 0 filter: -exception # registry: # address: zookeeper://192.168.80.249:2181?timeout=100000 # 日志配置 #logging: # path: ${LOGGING_PATH} # logstash: # destination: ${LOGSTASH_DESTINATION} mybatis-plus: mapper-locations: classpath*:sql/**/*Repository*.xml type-enums-package: com.toplion.**.enums global-config: # 关闭MP3.0自带的banner banner: false db-config: id-type: ASSIGN_ID configuration: default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandler #1、SESSION session级别缓存,同一个session相同查询语句不会再次查询数据库 2、STATEMENT 关闭一级缓存 #单服务架构中(有且仅有只有一个程序提供相同服务),一级缓存开启不会影响业务,只会提高性能。 微服务架构中需要关闭一级缓存,原因:Service1先查询数据,若之后Service2修改了数据,之后Service1又再次以同样的查询条件查询数据,因走缓存会出现查处的数据不是最新数据 localCacheScope: STATEMENT
https://apollo-portal.toplion.com.cn/
账号:toplion
密码:toplion@43
https://ks.toplion.com.cn/
账号:project-admin
密码: Tpqwe234