美文网首页程序员
初识 diamond server

初识 diamond server

作者: 数齐 | 来源:发表于2017-01-10 11:52 被阅读106次

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

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

    配置信息放入磁盘

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

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

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

    其实就是这个方法

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

    总结:

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

    相关文章

      网友评论

        本文标题:初识 diamond server

        本文链接:https://www.haomeiwen.com/subject/shskbttx.html