标签:sim imp 前端 lan 记录 默认 mic 简单 hub
新部署一个服务时,除了服务本身,还有它启动依赖的配置文件也要一并发布到目标主机。配置文件从哪里来?如何发送到目标主机?修改后如何同步?
我们可以在页面提供上传或新增功能,为每个服务保存一份默认的配置文件包,新部署时将此包的内容写入etcd,由主机上的守护进程去同步,后续的修改也只是更新etcd里的内容,原理请见 配置文件那些事
实际上服务的配置文件不只有默认包,每次修改内容都会创建一个新的包,这个包里的所有版本号都应可应用到该服务的每个实例,因此需要记录服务有哪些配置文件版本号、实例当前关联的版本号,就是一对多的关系。我们要修改一下模型:
class ConfRevision(models.Model):
# ...
service = models.ForeignKey(MicroService, on_delete=models.DO_NOTHING) # 1个服务可以有多个配置文件版本号
class MicroServiceInstance(models.Model):
# ...
conf_revision = models.ForeignKey(ConfRevision, null=True, blank=True, on_delete=models.DO_NOTHING) # 1个配置文件可以对应多个实例
为了方便录入文件,希望能实现以下功能:
为了更方便的实现功能,引入vue 和 ui组件 elementui 我们就从DOM中脱离出来,只需要操作数据就好。
前端最后提交到后端的是1个或多个文件,由于配置文件是纯文本格式,所以很方便的用数组来保存内容,使用json传输到后端。
服务的配置文件列表:
支持以下操作:
某个具体的配置文件:
文件对比:
目前的代码已经在本地数据库实现了一个完整的配置版本管理功能:
之后的内容下发就是将内容写入etcd,相对来说比较容易。
相关的页面和代码比以往要多,放到 这里
标签:sim imp 前端 lan 记录 默认 mic 简单 hub
原文地址:https://www.cnblogs.com/wbjxxzx/p/12112441.html