Ambari Server 配置多版本功能实现分析
2017-05-08 11:31
357 查看
配置多版本 表关系图:
![](https://images2015.cnblogs.com/blog/720537/201705/720537-20170508112941144-1700465860.png)
serviceconfig:服务配置表,version 最大的那条记录为 当前生效的配置
clusterconfig:配置文件表
serviceconfigmaping:服务和配置文件的对应关系表
举一个例子:
serviceconfig 表:
![](https://images2017.cnblogs.com/blog/720537/201711/720537-20171120192501290-616975468.jpg)
serviceconfigmaping 表:
![](https://images2015.cnblogs.com/blog/720537/201705/720537-20170508113010972-100941664.png)
clusterconfig 表:
![](https://images2017.cnblogs.com/blog/720537/201711/720537-20171120192516711-465579185.jpg)
假如有一个服务叫:TestService,它有两个配置文件:type1、type2。
1、首次安装服务之后:
serviceconfig 增加一行记录:service_config_id=53,version=1(version 最大的配置为当前生效的配置:service_config_id=53)
clusterconfig 增加两行记录,一个配置文件一行记录:config_id=54 代表配置文件 type1;config_id=55 代表配置文件 type2
serviceconfigmaping 增加两行记录:service_config_id=53 对应两个 config_id,54和55
2、这时候修改一下 type1 配置文件:
serviceconfig 增加一行记录:service_config_id=54,version=2(version 最大的配置为当前生效的配置:service_config_id=54)
clusterconfig 增加一行记录,代表刚才修改的 type1 配置:config_id=56
serviceconfigmaping 增加两行记录:service_config_id=54 对应两个 config_id,56和55(服务和配置的对应关系已经更新)
3、这时候又想切换 version=1 为当前生效的配置:
serviceconfig 增加一行记录:service_config_id=55,version=3(version 最大的配置为当前生效的配置:service_config_id=55)
clusterconfig 表不变
serviceconfigmaping 增加两行记录:service_config_id=55 对应两个 config_id,54和55(服务和配置的对应关系已经更新)
![](https://images2015.cnblogs.com/blog/720537/201705/720537-20170508112941144-1700465860.png)
serviceconfig:服务配置表,version 最大的那条记录为 当前生效的配置
clusterconfig:配置文件表
serviceconfigmaping:服务和配置文件的对应关系表
举一个例子:
serviceconfig 表:
![](https://images2017.cnblogs.com/blog/720537/201711/720537-20171120192501290-616975468.jpg)
serviceconfigmaping 表:
![](https://images2015.cnblogs.com/blog/720537/201705/720537-20170508113010972-100941664.png)
clusterconfig 表:
![](https://images2017.cnblogs.com/blog/720537/201711/720537-20171120192516711-465579185.jpg)
假如有一个服务叫:TestService,它有两个配置文件:type1、type2。
1、首次安装服务之后:
serviceconfig 增加一行记录:service_config_id=53,version=1(version 最大的配置为当前生效的配置:service_config_id=53)
clusterconfig 增加两行记录,一个配置文件一行记录:config_id=54 代表配置文件 type1;config_id=55 代表配置文件 type2
serviceconfigmaping 增加两行记录:service_config_id=53 对应两个 config_id,54和55
2、这时候修改一下 type1 配置文件:
serviceconfig 增加一行记录:service_config_id=54,version=2(version 最大的配置为当前生效的配置:service_config_id=54)
clusterconfig 增加一行记录,代表刚才修改的 type1 配置:config_id=56
serviceconfigmaping 增加两行记录:service_config_id=54 对应两个 config_id,56和55(服务和配置的对应关系已经更新)
3、这时候又想切换 version=1 为当前生效的配置:
serviceconfig 增加一行记录:service_config_id=55,version=3(version 最大的配置为当前生效的配置:service_config_id=55)
clusterconfig 表不变
serviceconfigmaping 增加两行记录:service_config_id=55 对应两个 config_id,54和55(服务和配置的对应关系已经更新)
相关文章推荐
- Ambari Server 配置组功能实现分析
- Lync Server 2013功能部署系列之八 配置、使用Lync VDI 2013 Plug-In实现在VDI环境
- iOS 进阶开发— 原生APNS配置以及server实现(c++版本)
- Ubuntu 12.04.04 LTS server版本FTP server功能配置
- InnoSQL HA Suite的实现原理与配置说明 InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync replicaiton)的功能 MySQL 5.6支持了crash safe功能
- iOS 进阶开发— 原生APNS配置以及server实现(c++版本)
- Lync Server 2013功能部署系列之八 配置、使用Lync VDI 2013 Plug-In实现在VDI环境
- Apache HTTP Server 2.4版本的源码安装配置及实现
- Linux环境用C语言实现读取配置文件来区分产品的多个版本以及多个功能
- MySQL数据库InnoDB存储引擎多版本控制(MVCC)实现原理分析
- 基于owncloud最新稳定版本9.1.1开发实现了owncloud支持ceph s3作为primary storage功能
- 让动态生成的类成为目标类的代理-实现AOP功能的封装与配置
- 0.10版本后的kafka配置producer和comsumer的server参数
- as通过gradle实现多渠道打包+使用配置文件进行版本管理+指定apk输出路径和apk文件名
- 使用JavaEE的ServerAuthModule模块和web.xml进行相应配置,实现对用户的权限控制
- 利用配置文件实现SQL-Server与Oralce数据库访问类的转换
- 仿QQ左滑删除功能实现分析(一)-预告
- Android贪食蛇-版本1.1(基本功能实现版)
- Flex实现页面跳转的功能可用性分析
- 实现一个配置简单功能强大的excel工具类搞定excel导入导出(二)