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 發佈!