微服务下配置管理中心 SCCA

SCCA 简介

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

部署 SCCA

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

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

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

# 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

3、运行 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

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

  • 环境:例如:开发环境、测试环境、生产环境等
  • 项目:每个 Spring Boot 应用都是一个项目
  • 版本:对应 Git 仓库的分支即可,例如:master、1.0.0 等

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

server:
  port: 8081

spring:
  grpc:
    enable: true
    port: 6565

如何应用到 SCCA 上呢?

1、新建环境

2、创建项目

3、添加配置

4、依赖 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 进阶

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

1、首先,可以定义通用性的 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

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

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

写在后面的话

SCCA 的出现绝非偶然,目前核心贡献者均就业于一线互联网企业,他们常奋斗到深夜 ,只为提供更易用、更可靠的服务,辛苦了!期待下个版本吧!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端黑板报

Spring Boot 入门

一直想尝试Java-web开发,无奈配置太复杂。就是这个spring-boot也是尝试几次无果。昨天晚上决定再试一次,居然奇迹般的可以运行了。 选择spring...

2517
来自专栏友弟技术工作室

(效率人生)MAC必备工具Alfred入门使用前言如何获取Alfred如何打开AlfredGeneral(通用界面)Features(特性界面)Advanced(高级设置)

1. General:通用; 2. Features:特性; 3. Workflows:工作流; 4. Appearance:外观; 5...

1961
来自专栏技术翻译

使用Spring Boot,Spring Cloud,Docker和一些Netflix的开源工具建立微服务架构。

本文通过使用Spring Boot,Spring Cloud和Docker构建的概念验证应用程序的示例,为了解常见的微服务架构模式提供了一个起点。

2050
来自专栏SpringBoot 核心技术

第四十章:基于SpringBoot & Quartz完成定时任务分布式多节点负载持久化

47712
来自专栏difcareer的技术笔记

breakpad: Native crash 日志收集工具前言正题breakpad工作原理项目集成

现在大部分应用都会有Java层的崩溃日志收集机制,一般就是程序crash后,展示一个上报界面,用户点击就上传了。 但是Native程序crash了,很少有做处...

1572
来自专栏人工智能LeadAI

配置深度学习主机与环境(TensorFlow+1080Ti) | 第二章 Win10&Ubuntu双系统与显卡驱动安装

网上安装双系统的教程不少,但多数教程所使用的硬件以现在的眼光看来显得有些过时;另外,其原有所使用的方法,对于新的硬件也不再合适。本教程写于2017年7月,希望能...

6616
来自专栏沈唁志

WordPress最新版完全禁用JSON REST API输出站点信息

WordPress 从 4.4 版本开始新增的 JSON REST API 功能,通过这个 REST API 可以很轻松的获取网站的数据,可应用于其他网站、手机...

1403
来自专栏编程坑太多

『中级篇』play with docker 的使用(44)

Marcos 和 Jonathan 还带来了另一个炫酷的功能就是可以在 PWD 实例中通过拖放文件的方式将 Dockerfile 直接上传到 PWD 窗口。

651
来自专栏walterlv - 吕毅的博客

制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题

2018-02-22 14:14

2741
来自专栏互联网技术栈

Jetty基本介绍 及 与tomcat对比

bin:可执行脚本文件 demo- base: etc:Jetty模块定义的XML配置文件的目录 lib:Jetty依赖的库文件 logs:Jetty的...

1114

扫码关注云+社区

领取腾讯云代金券