Spring Cloud Gray 部署
Spring Cloud Gray
分为管控端,和客户端,管控端需要部署Java管理服务和Web操作界面。而客户端则简单很多,我们分别介绍下部署方式。
管控端
Java管理服务
(1)添加jar包依赖maven
工程可以在pom.xml
中添加配置
<dependency>
<groupId>cn.springcloud.gray</groupId>
<artifactId>spring-cloud-starter-gray-server</artifactId>
<version>A.1.1.2</version>
</dependency>
(2)添加application
参数
在application.yaml
中添加Spring Boot启动时需要的参数,以及eureka、数据库、jpa的配置等。还有灰度管理的配置。
server:
port: 20202
spring:
application:
name: gray-server
#数据库配置
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/gray_server01?charset=utf8mb4&useSSL=false
username: root
password: root
# JPA 相关配置
jpa:
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
show-sql: true
generate-ddl: true
hibernate:
ddl-auto: update
# eureka
eureka:
client:
register-with-eureka: true
fetch-registry: true
serviceUrl:
defaultZone: http://localhost:20001/eureka/
#灰度管理
gray:
server:
evictionIntervalTimerInMs: 30000
instance:
normalInstanceStatus: STARTING,UP,OUT_OF_SERVICE
eviction:
enabled: true
evictionIntervalTimerInMs: 86400000
evictionInstanceStatus: DOWN,UNKNOWN
lastUpdateDateExpireDays: 1
(3)创建Application
类
创建Application
类,启动Spring Boot应用,灰度的管控端需要在Application
类添加一个注解@EnableGrayServer
,这样Spring Boot启动时,才会去加载gray server
的相关配置类。
import cn.springcloud.gray.server.EnableGrayServer;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableGrayServer
@EnableDiscoveryClient
public class GrayServerApplication {
public static void main(String[] args) throws UnknownHostException {
new SpringApplicationBuilder(GrayServerApplication.class).web(true).run(args);
}
}
到此,灰度管控端的工程就完成了,可以运行Application
类启动Spring Boot。假如服务访问路径是http://localhost:20202
,可以通过http://localhost:20202/swagger-ui.html
访问swagger
文档。
Web操作界面
Web操作界的源码在spring-cloud-gray-webui
工程中,在源码根目录中运行npm run dev
,可以运行开发环境的代码。
$ npm i
$ npm run dev
可以在.env.development
文件中修改灰度管理服务的访问地址
ENV = 'development'
VUE_APP_BASE_API = 'http://localhost:20202'
VUE_CLI_BABEL_TRANSPILE_MODULES = true
如果要编译测试环境和生产环境的发布文件,可以参考下列列表
环境 | 运行命令 | 配置文件 |
---|---|---|
开发环境 | npm run dev |
.env.development |
测试环境 | npm run build:stage |
.env.staging |
生产环境 | npm run build:prod |
.env.production |
编译后的文件都在根目录的dist
文件夹下
客户端
服务消费方添加jar包依赖
maven工程在pom.xml
中添加依赖
<dependency>
<groupId>cn.springcloud.gray</groupId>
<artifactId>spring-cloud-starter-gray-client</artifactId>
<version>A.1.1.2</version>
</dependency>
<dependency>
<groupId>cn.springcloud.gray</groupId>
<artifactId>spring-cloud-gray-plugin-feign</artifactId>
<version>A.1.1.2</version>
</dependency>
zuul(网关)添加jar包依赖
maven工程在pom.xml
中添加依赖
<dependency>
<groupId>cn.springcloud.gray</groupId>
<artifactId>spring-cloud-starter-gray-client</artifactId>
<version>A.1.1.2</version>
</dependency>
<dependency>
<groupId>cn.springcloud.gray</groupId>
<artifactId>spring-cloud-gray-plugin-zuul</artifactId>
<version>A.1.1.2</version>
</dependency>
Spring Cloud Gateway(网关)添加jar包依赖
maven工程在pom.xml
中添加依赖
<dependency>
<groupId>cn.springcloud.gray</groupId>
<artifactId>spring-cloud-starter-gray-client</artifactId>
<version>B.0.0.2</version>
<exclusions>
<exclusion>
<artifactId>spring-cloud-gray-plugin-webmvc</artifactId>
<groupId>cn.springcloud.gray</groupId>
</exclusion>
<exclusion>
<groupId>cn.springcloud.gray</groupId>
<artifactId>spring-cloud-gray-plugin-eureka</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>cn.springcloud.gray</groupId>
<artifactId>spring-cloud-gray-plugin-gateway</artifactId>
<version>B.0.0.2</version>
</dependency>
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/27/spring-cloud-gray-deployment/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论