【无中生有】---8---分布式配置系统数据库设计

在集群里手动配置每一台服务器上的程序很明显是不明智的,劳神费力还可能出差异造成程序不一致。

而且在发生配置改变的时候还需要一一去做修改,更是麻烦

将配置内容的获取与载入作为一个功能插件内化到程序中,并以消息监听器的方式接收配置服务管理端发来的更改通知,移除旧的配置数据在本地生成的数据文件,然后载入新的数据文件,并加载到程序中。

这样就形成数据的两处存储,一处是在服务管理端,一处是在应用程序所在服务器,为什么不直接加载进入程序中呢?

因为服务端有可能离线,而同时应用程序重启,在本地保留一份以应对服务端离线。

数据库设计

解决方案表:每一个解决方案代表一系列服务所需要的配置文件组合,为了防止程序间修改配置造成的问题,不同程序的配置数据不可以共享,虽然造成一定工作量,但是不会由于共享配置数据改变造成的程序间配置需求差异造成的问题。

字段 类型 作用
SoluationId guid 方案id
SoluationName 字符 方案名
SoluationSimple 字符 方案简介
AppId guid 程序id
Enable 布尔类型 方案是否启用
CreateTime 时间类型 创建日期
CreateBy 整型 创建人
ModifyTime 时间类型 修改日期
ModifyBy 整型 修改人
IsDelete 布尔 是否删除
应用程序表

字段 类型 作用
AppId guid 应用程序id
AppName 字符 程序名
AppTitle 字符 程序展示名
CreateTime 时间类型 创建日期
CreateBy 整型 创建人
ModifyTime 时间类型 修改日期
ModifyBy 整型 修改人
IsDelete 布尔 是否删除

组件表:
通过组件数据在组件发生重大变更时对配置文件表进行统一性更改

字段 类型 作用
Id 整型 数据id
AppplusId guid 组件id
AppPlusName 字符 程序组件名
CreateTime 时间类型 创建日期
CreateBy 整型 创建人
ModifyTime 时间类型 修改日期
ModifyBy 整型 修改人
IsDelete 布尔 是否删除

配置文件表:程序组件需要的配置文件,此表的数据只增不修改

字段 类型 作用
Id guid id
SoluationId guid 配置方案解决方案id
AppplusId guid 组件id
Title 字符 配置展示名
Content xml 配置内容
Version 整型 版本号,修改一次内容就自动新增一个版本
Enable 布尔类型 方案是否启用
CreateTime 时间类型 创建日期
CreateBy 整型 创建人
StopTime 时间类型 停用日期
ModifyBy 整型 修改人
配置历史表:

字段 类型 作用
Id 整型 id
SoluationId guid 配置方案解决方案id
SoluationVersion 整型 解决方案版本号
MdsId guid 服务配置文件id
Version 整型 服务配置文件版本号
CreateTime 时间类型 创建日期
CreateBy 整型 创建人

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/AI001/p/4614364.html