原文地址:http://rdc.taobao.com/team/jm/archives/1592
大家好,通过第一篇的快速使用,大家已经对diamond有了一个基本的了解。本次为大家带来的是diamond核心原理的介绍,主要包括server集群的数据同步、client获取server地址、client从server获取数据、client运行时感知server的数据变化,这四部分。
一、server集群数据同步
diamond-server将数据存储在mysql和本地文件中,mysql是一个中心,diamond认为存储在mysql中的数据绝对正确,除此之外,server会将数据存储在本地文件中。
同步数据有两种方式:
(1)server写数据时,先将数据写入mysql,然后写入本地文件,写入完成后发送一个HTTP请求给集群中的其他server,其他server收到请求,从mysql中dump刚刚写入的数据至本地文件。
(2)server启动后会启动一个定时任务,定时从mysql中dump所有数据至本地文件。
二、client获取server地址
diamond-client在使用时没有指定server地址的代码,地址获取对用户是透明的。
server地址存储在一台具有域名的机器上的HTTPserver中,我们称它为地址服务器,diamond-client使用前需要在本地进行正确的域名绑定,启动时它会根据域名绑定,去对应环境的地址服务器上获取diamond-server地址列表。
获取的地址列表,会保存在client本地,当出现网络异常,无法从网络获取地址列表时,client会使用本地保存的地址列表。
client启动后会启动一个定时任务,定时从HTTPserver上获取地址列表并保存在本地,以保证地址是最新的。
三、client主动获取数据
client调用getAvailableConfigInfomation(),即可获取一份最新的可用的配置数据,获取过程实际上是拼接httpurl,使用http-client调用httpmethod的过程。
为了避免短时间内大量的获取数据请求发向server,client端实现了一个带有过期时间的缓存,client将本次获取到的数据保存在缓存中,在过期时间内的所有请求,都返回缓存内的数据,不向server发出请求。
四、client运行中感知数据变化
这是diamond最为核心的一个功能。
这个特性是通过比较client和server的数据的MD5值实现的。
server在启动时,会将所有数据的MD5加载到内存中(MD5根据某算法得出,保证数据内容不同,MD5不同,MD5存储在mysql中),数据更新时,会更新内存中对应的MD5
client在启动并第一次获取数据后,会将数据的MD5保存在内存中,并且在启动时会启动一个定时任务,定时去server检查数据是否变化。每次检查时,client将MD5传给server,server比较传来的MD5和自身内存中的MD5是否相同,如果相同,说明数据没变,返回一个标示数据不变的字符串给client;如果不同,说明数据变了,返回变化数据的dataId和group给client.client收到变化数据的dataId和group,再去server请求一次数据,拿回数据后回调监听器。
分享到:
相关推荐
diamond
lattice diamond 的license 多种解密方法,让你在lattice diamond芯片开发上,大展身手!
diamond升级到了3.2i, 经测试原来的破解yourlicense在3.2H之前仍然有效!到这里下载3.2I,http://download.csdn.net/detail/daipengren/4424598 安装后,下载附件中的yourlicense覆盖原文件即可
适合diamond画图软件者,适合画各种立体图形,是一个不错的画图软件学习教材
可以实现读取气象micaps-diamond3类数据
lattice 的diamond 3.1 license
lattice diamond license lattice diamond license lattice diamond license lattice diamond license lattice diamond license lattice diamond license
用lattice软件而又对E文头疼的同胞,这是一份相当省时省事有价值的资料,对你绝对有帮助!
AV Voice Changer Software Diamond Edition 6.0.32 nnvcs_diamond_aff
Crystal Impact Diamond 3.1破解补丁。安装Crystal Impact Diamond 3.1后,将破解补丁复制粘贴到Diamond对应安装目录覆盖原文件即可。
关于Diamond 教程大全 1.Diamond 画氢键. 2.用Diamond软件构建化学晶体 3.晶体结构模型软件Diamond的使用技巧. 4.晶体结构立体模型建构软件-Diamond的使用指南 5.在空穴内做小球 6.Diamond用户手册中文版
多次验证,万能License ,无限制 多个版本的Diamond软件,均可使用,只需要将该Licesne放入Diamond安装路径的license文件下即可。。
Diamond Fantasy
lattice diamond 3.7 license 莱迪思(Lattice) 亲测保证可用
taobao Diamond 部分maven jar包
diamond图形学课设完整代码可运行
lattice 公司的开发软件: diamond , 在官网可以免费的申请对应的license.dat, 但是 对应的license 一方面需要匹配你电脑的网卡物理地址,而且有时间限制,更重要的是 可使用的ip都是最基本的. 现在这个license是无...
Lattice Diamond 3.1 User Guide 比较全的使用指南咯,官网下的,大家也可以去官网上下【笑哭】
diamond软件为:在原子水平范围内实现晶体结构可视化的软件。
Lattice Diamond的有效破解在网上目前找不到,这个是我从厂家要到的,亲测Lattice_Diamond.2.0.0.154有效破解