/SpringCouldDemo

分布式Demo

Primary LanguageJavaApache License 2.0Apache-2.0

分布式Demo

别人家的流程图 ~ hh

1. 调用zc-gateway

2. 调用zc-authorization

3. 调用zc-authentication

4. 调用对应的服务

技术点

技术名称 版本 github 相关介绍
Nacos 1.3.2 URL URL
Seata 1.3.0 URL URL
SpringBoot Admin 2.3.0 URL URL

nacos

nacos-server

默认登录用户及密码为:nacos

seata

ps. 在将config.txt中的内容加载到nacos中时,如果使用的是db模式,并且mysql版本为8时,需要单独配置下时区,使用nacos-config.sh 加载时 丢失部分参数配置“&serverTimezone=Asia/Shanghai” store.db.url=jdbc:mysql://122.51.198.52:3306/seata?useSSL=FALSE&serverTimezone=Asia/Shanghai

内部访问

技术名称 内部访问 账号 密码
登录接口 http://127.0.0.1:8080/zc-admin-provider/user/login admin 1
SpringBoot Admin http://127.0.0.1:8080/zc-admin-provider/admin/login admin 1

知识点

Gradle构建的项目模块之间调用方式

此处可参考 zc-gateway项目调用zc-common项目

1. 修改zc-common项目的build.gradle文件

plugins {
    id 'org.springframework.boot' version '2.3.1.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

将以上配置替换为下面的配置

buildscript {
    ext {
        springBootVersion = '2.3.1.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

plugins {
    // 其他项目需要引用当前项目时,需要将id 'java'改为id 'java-library',避免其他项目调用时报乱码错误。
    id 'java-library'
}

2. 修改zc-gateway项目的setting.gradle文件

// 引入其他项目
includeFlat 'zc-common'

3. 修改zc-gateway项目的build.gradle文件

dependencies {
  // 自己的通用包
  compile project(':zc-common')
}

采用namespace与配置文件的结合方式动态获取数据

1. 添加命名空间

  • 空间名: dev
  • 描述: 开发模式
  • 空间id可以自动生成

2. 根据项目及namespace进行添加配置文件

3. 在项目的bootstrap.yml文件上添加namespace属性

spring.cloud.nacos.discovery.namespace

spring.cloud.nacos.config.namespace

4. 调用方法和正常yml配置文件中的调用方法相同,但是需要在使用的类上添加@RefreshScope注解,如果nacos中的属性值改变了,此处的值也会改变。