美文网首页程序员
初识 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

    一些基础的功能不做赘述了,增删查改,我们就以添加配置时,做了什么。 首先是检查参数,没问题的话就拼装成Config...

  • 初识 diamond client

    上一篇文章,我们简单的看了一下diamond server的功能及所做的事情,本篇我们看一下diamond cli...

  • Node初识-server

    前端项目 都必须依托于服务器运行 PHP 依托于 阿帕奇服务器 (xampp中) Node 依托于 自己创建的服...

  • 深入淘宝Diamond之客户端架构解析

    说明:本文不介绍如何使用Diamond,只介绍Diamond的实现原理 一、什么是Diamond diamond是...

  • 初识 Redis

    初识 Redis Redis 全称 REmote Dictionary Server. Redis 是一种基于键值...

  • diamond

    BLAST本地比对太慢?不怕用diamond 生信入门:序列比对之diamond

  • Diamond

    就在几小时前,我还沉浮在眼前的匆匆行色里,看着你来我往,尽量把自己压缩在一个没有声音只有画面的自由空间里。 实际上...

  • Diamond

    一、我瞥见了几个人 “中杯卡布,在这喝。”与往常一样,一杯咖啡、一个人、一个周一的上午。 如果说有什么变化,那可能...

  • Diamond

    Maybe we don't have everything figured out right now But ...

  • diamond

    上午去舰保大看篮球比赛,想起了一首歌《diamond》。 虽然没有上场,但是我渴望做闪耀的那颗diamond。 y...

网友评论

    本文标题:初识 diamond server

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