SCCA 全称 spring-cloud-config-admin,微服务下 Spring Boot 应用(包含 Spring Cloud)统一的配置管理平台。java
一、运行 MySQL,已有,请忽略此步骤mysql
docker run --name mariadb -e MYSQL_ROOT_PASSWORD=scca-pwd -d mariadb
二、建立配置文件,假设路径为 ~/scca/bootstrap.propertiesgit
# server spring.application.name=scca-server server.port=8080 # scca-rest-server api url prefix scca.rest.context-path=/xhr # scca-ui-server embed scca-rest-server scca.ui.use-embed-scca-rest-server=true # Datasource spring.datasource.url=jdbc:mysql://mariadb:3306/config-db spring.datasource.username=root spring.datasource.password=scca-pwd spring.datasource.driver-class-name=com.mysql.jdbc.Driver # embed config server # warning : create env set contextPath spring.cloud.config.server.prefix=/scca-config-server encrypt.key=anoyi
三、运行 SCCA程序员
docker run -d --name scca \ --link mariadb:mariadb \ -p 8080:8080 \ -v ~/scca/bootstrap.properties:/bootstrap.properties \ -e SPRING_PARAMS="spring.config.location=/bootstrap.properties" \ registry.cn-hangzhou.aliyuncs.com/micro-java/micro-core-config
在使用 SCCA 以前,了解三个基本概念:github
假设,如今有一个 Spring Boot 应用 【 samples-server 】,配置以下:spring
server: port: 8081 spring: grpc: enable: true port: 6565
如何应用到 SCCA 上呢?sql
一、新建环境docker
二、建立项目shell
三、添加配置bootstrap
四、依赖 SCCA 启动的 Spring Boot 应用
首先,添加 Maven 依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> <version>2.0.0.RELEASE</version> </dependency>
而后,添加配置文件 resources/bootstrap.properties
,此配置文件能够做为通用配置模板:
# 配置中心:SCCA 地址 + SCCA 配置项 spring.cloud.config.server.prefix spring.cloud.config.uri=http://127.0.0.1:8080/scca-config-server # 环境 spring.cloud.config.profile=dev # 项目 spring.application.name=samples-server # 版本 spring.cloud.config.label=master
最后,启动应用便可!
SCCA 可以统一管理全部 Spring Boot 应用的配置,那么就给运维带来了极大的便利!
一、首先,能够定义通用性的 Dockerfile
FROM openjdk:8-jre-alpine ENV TZ="Asia/Shanghai" JVM_PARAMS="" APP_CONFIG_URL="" APP_ENV="" APP_NAME="" APP_VERSION="" ADD target/*.jar /server.jar CMD java $JVM_PARAMS -Djava.security.egd=file:/dev/./urandom -jar /server.jar --spring.cloud.config.uri=$APP_CONFIG_URL --spring.cloud.config.profile=$APP_ENV --spring.application.name=$APP_NAME --spring.cloud.config.label=$APP_VERSION
参数 | 描述 |
---|---|
JVM_PARAMS | JVM 相关参数配置 |
APP_CONFIG_URL | 配置中心的地址,对应 spring.cloud.config.uri |
APP_ENV | 应用发布的环境,对应 spring.cloud.config.profile |
APP_NAME | 服务名称,对应 spring.application.name |
APP_VERSION | 服务版本,对应 spring.cloud.config.label |
二、而后,构建通用的 Jenkins 流水线
Jenkins 使用 Maven 将代码打包,构建 Docker 镜像,而后推送到镜像仓库,接着使用 Ansible 经过不一样变量的设置,将服务部署到 Kubernetes 集群,最后经过 shell 脚本校验服务是否成功部署。
扫码关注我:
本文由博客一文多发平台 OpenWrite 发布!