初识 diamond server

一些基础的功能不做赘述了,增删查改,我们就以添加配置时,做了什么。

首先是检查参数,没问题的话就拼装成ConfigInfo,它的构造方法中会对content进行MD5加密,值会赋给ConfigInfo的属性md5。然后将数据持久化到数据库中。随后将group和dataId组成缓存的key,内容的md5作为value,放入缓存。然后将数据放入磁盘。


配置信息放入磁盘

modifyMarkCache 是一个锁的功能,如果存储的信息中没有cacheKey的话才可以执行下面的操作,如果存在,那么说明有其他的人在操作同一个group,dataId的数据,就会直接抛出异常。下面我们看正常的流程,找到项目路径中的已group命名的文件夹,不存在就创建,随后找到这个group命名的文件夹中的dataId命名的文件,不存在的话创建(这个文件就是我们要操作,的目标文件),随后根据group和dataId创建临时文件,写入需要的内容。最后将临时文件的内容复制到目标文件中。操作成功后删除临时的文件,在缓存中清除标记。

持久化完成后,就需要通知集群中的其他节点,更新内容了。


拼接参数,调用restful方法。可以看到是遍历得到每一个节点的地址信息,随后调用。调用的方法是notifyConfigInfo。

其实就是这个方法


从数据库中获取到最新的配置,更新缓存,更新磁盘。


总结:

当一个节点的数据发生变化时,先持久化到数据库,再刷新本地缓存,更新服务器的磁盘。随后通知到集群中的其他节点更新。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容