java微服务配置中心常见问题_微服务下配置管理中心 SCCA

点击上方☝ SpringForAll社区  轻松关注! 及时获取有趣有料的技术文章

SCCA 简介

SCCA 全称 spring-cloud-config-admin,微服务下 Spring Boot 应用(包含 Spring Cloud)统一的配置管理平台。

  • Github 地址:spring-cloud-config-admin

  • 核心贡献者:程序员DD | stone-jin

  • 标签:轻量、易用、视觉好、交互好


部署 SCCA

1、运行 MySQL,已有,请忽略此步骤

1docker run --name mariadb -e MYSQL_ROOT_PASSWORD=scca-pwd -d mariadb

2、创建配置文件,假设路径为 ~/scca/bootstrap.properties

 1# server
2spring.application.name=scca-server
3server.port=8080
4
5# scca-rest-server api url prefix
6scca.rest.context-path=/xhr
7
8# scca-ui-server embed scca-rest-server
9scca.ui.use-embed-scca-rest-server=true
10
11# Datasource
12spring.datasource.url=jdbc:mysql://mariadb:3306/config-db
13spring.datasource.username=root
14spring.datasource.password=scca-pwd
15spring.datasource.driver-class-name=com.mysql.jdbc.Driver
16
17# embed config server
18# warning :create env set contextPath
19spring.cloud.config.server.prefix=/scca-config-server
20encrypt.key=anoyi

3、运行 SCCA

1docker run -d --name scca \
2--link mariadb:mariadb \
3-p 8080:8080 \
4-v ~/scca/bootstrap.properties:/bootstrap.properties \
5-e SPRING_PARAMS="spring.config.location=/bootstrap.properties" \
6registry.cn-hangzhou.aliyuncs.com/micro-java/micro-core-config

应用 SCCA

在使用 SCCA 之前,了解三个基本概念:

  • 环境:例如:开发环境、测试环境、生产环境等

  • 项目:每个 Spring Boot 应用都是一个项目

  • 版本:对应 Git 仓库的分支即可,例如:master、1.0.0 等

假设,现在有一个 Spring Boot 应用 【 samples-server 】,配置如下:

1server:
2  port: 8081
3
4spring:
5  grpc:
6    enable: true
7    port: 6565

如何应用到 SCCA 上呢?

1、新建环境

96d0f54d00c18a44842a592b5e813956.png
img

2、创建项目

5137790d9e9a0ec20a4e45a19daf936b.png
img

3、添加配置

7bf3f833ecf97c13f18faa2e8402d98a.png
img

4、依赖 SCCA 启动的 Spring Boot 应用

首先,添加 Maven 依赖:

1     <dependency>
2            <groupId>org.springframework.cloudgroupId>
3            <artifactId>spring-cloud-starter-configartifactId>
4            <version>2.0.0.RELEASEversion>
5        dependency>

然后,添加配置文件 resources/bootstrap.properties,此配置文件可以作为通用配置模板:

 1# 配置中心:SCCA 地址 + SCCA 配置项 spring.cloud.config.server.prefix
2spring.cloud.config.uri=http://127.0.0.1:8080/scca-config-server
3
4# 环境
5spring.cloud.config.profile=dev
6
7# 项目
8spring.application.name=samples-server
9
10# 版本
11spring.cloud.config.label=master

最后,启动应用即可!

40a6ce027cf7a30b7366471155412471.png
img

SCCA 进阶

920a4db47a5a85707b7ba3c1f7e8ebb5.png
img

SCCA 能够统一管理所有 Spring Boot 应用的配置,那么就给运维带来了极大的便利!

1、首先,可以定义通用性的 Dockerfile

1FROM openjdk:8-jre-alpine
2
3ENV TZ="Asia/Shanghai" JVM_PARAMS="" APP_CONFIG_URL="" APP_ENV="" APP_NAME="" APP_VERSION=""
4
5ADD target/*.jar /server.jar
6
7CMD 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_PARAMSJVM 相关参数配置
APP_CONFIG_URL配置中心的地址,对应 spring.cloud.config.uri
APP_ENV应用发布的环境,对应 spring.cloud.config.profile
APP_NAME服务名称,对应 spring.application.name
APP_VERSION服务版本,对应 spring.cloud.config.label

2、然后,构建通用的 Jenkins 流水线

1df44d0b07543909e68502a7967e6825.png
img

Jenkins 使用 Maven 将代码打包,构建 Docker 镜像,然后推送到镜像仓库,接着使用 Ansible 通过不同变量的设置,将服务部署到 Kubernetes 集群,最后通过 shell 脚本校验服务是否成功部署。

ecc5a3de1612f259a03b894385ae4810.gif

● 啥?双十一线上出故障了?日志动态级别赶紧修改排查一下

● Spring Boot 配置 - Consul 配置中心

● 天天玩微信,Spring Boot 开发私有即时通信系统了解一下

● SpringBoot正确打日志的姿势

● Spring Boot 定制 parent 快速构建应用

● Spring Boot 容器化部署 - Docker

● SpringBot中教你手把手配置 https

● Spring Boot 日志处理你还在用Logback?

● 【双11狂欢的背后】微服务注册中心如何承载大型系统的千万级访问?

● Spring Boot 新一代监控你该这么玩

● Spring Boot 异常处理

● Spring Boot 配置 - 配置信息加密

● 拒绝黑盒应用-Spring Boot 应用可视化监控

● 并发Bug之源有三,请睁大眼睛看清它们

f8807ec271f06c69c72f7362d6983df7.png

ceb954e1109af636c270cfd305598425.gif

如有收获,请帮忙转发,您的鼓励是作者最大的动力,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值