配置管理平台服务(Mysql持久化、完善角色权限控制、完美兼容Spring Boot Config Client)

丶灬走出姿态 提交于 2020-01-06 18:17:37

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

1、项目简介

1.1 开发目的

致力于开发一套能较好管理应用配置的平台,需要支持如下特性:

(1)配置编辑简单易用

(2)多角色权限控制、配置修改需要双人复核、配置修改有完备的修改记录

(3)配置支持多环境、多版本控制

(4)支持多种框架(目前支持Spring Cloud Config)

(5)应用获取配置保留获取日志

(6)支持应用灰度发布(暂不支持)

(7)高可用

(8)服务无状态,支持分布式部署。登录验证采用JWT技术,登录态客户端维护。

1.2 使用技术

服务端:SpringBoot、MybatisPlus、Mysql、Email

管理端:Vue、ViewUI

1.3 环境信息

管理端地址:http://119.29.120.234/config-center-view/#/

展示账号:demo  密码:123456  (也可自行注册账号,一定要填真实邮箱,会发邮件验证

配置服务地址(接口获取配置使用):http://119.29.120.234/config-center-service/config

1.4 名词解释

(1)命名空间(Group):相当于组织或者大型项目的名称,每个用户都可以创建多个命名空间,也可以将其他用户以多种角色加入到自己的命名空间中。

(2)应用:相当于工程(Project),配置在应用下维护。

(3)环境:每个应用可以存在多个环境,如开发环境、测试环境和生产环境,不同环境的配置不同,可以分别维护。

(4)版本:每个环境的配置可以创建多个版本,应用可以获取不同版本的配置,不同版本的配置不同,可以分别维护。

1.5 权限控制

权限以命名空间为单位,命名空间中有三个角色:

管理员:拥有所有权限

开发者:拥有新增环境、新增环境、提交配置修改请求权限

报告人:只有查看配置权限

功能 管理员 开发者 报告人
命名空间信息修改
命名空间成员管理
新增应用
应用信息修改
新增环境
修改、删除环境
设置默认环境
新增版本
修改、删除版本
设置默认版本
提交配置修改请求
处理配置修改请求
查看和导出配置

2、平台使用

2.1 用户注册

2.2 新建命名空间

2.3 新建应用

2.4 新建环境

common为各个环境共有的配置

设置默认环境,打开页面时,会默认加载默认环境页面,同时如果通过接口获取配置时未输入环境配置,将自动获取默认环境。

2.5 新建版本

设置默认版本,打开页面时,会默认加载默认版本页面,同时如果通过接口获取配置时未输入版本配置,将自动获取默认版本。

2.6 修改配置信息

记录绿色表示新增,蓝色为修改,红色为删除

2.7 提交配置修改请求

2.8 合并请求

管理员登录网站后,右上角会显示待合并请求。

管理员完成合并后配置修改成功。

3、SpringBoot应用对接

3.1 添加依赖

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-dependencies</artifactId>
			<version>Hoxton.SR1</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-config</artifactId>
</dependency>

3.2 获取应用访问token

如果不存在,联系Group管理员添加

3.3 添加配置文件 bootstrap.properties

#配置获取地址,可以填写多个。Spring Cloud Config Client 如果第一个获取失败将会自动尝试第二个
spring.cloud.config.uri=http://119.29.120.234/config-center-service/config,http://119.29.120.234:8888/config-center-service/config
#配置名称 命名空间+下划线+应用名词
spring.cloud.config.name=demo-group_config-client-demo
#环境名称
spring.cloud.config.profile=dev
#版本名词
spring.cloud.config.label=v1.0
#应用访问token,应用配置中获取
spring.cloud.config.token=0c32cd79-1ebd-4a47-a129-7a44fa569bb5
#快速失败配置,如果无法获取配置,应用启动立即停止,不会尝试启动
spring.cloud.config.fail-fast=true

此时启动应用将会从配置管理平台获取配置

3.4 密码加密处理

如果担心密码泄露,可以使用jasypt-spring-boot-starter对密码加密。

jasypt.encryptor.password=xxxxxx 配置放到本地bootstrap.properties中。

ENC(****)形式的密码放在配置管理平台上。

 

如有疑问,请发邮件联系我cpt725@qq.com

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!