zoukankan      html  css  js  c++  java
  • 【无中生有】---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 整型 创建人

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

  • 相关阅读:
    《PHP, MySQL, Javascript和CSS》读书随手记----php篇
    20160917 携程前端笔试题
    总结一下http请求吧
    前端资源池
    【CS】笔试常见题目
    【JavaScript】js 中一些需要注意的问题
    c++中的一些计算的问题
    ubuntu下sqlite命令
    关于ubuntu软件卸载的问题
    【js】关于正则表达式
  • 原文地址:https://www.cnblogs.com/AI001/p/4614364.html
Copyright © 2011-2022 走看看