原文地址: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覆盖原文件即可
可以实现读取气象micaps-diamond3类数据
适合diamond画图软件者,适合画各种立体图形,是一个不错的画图软件学习教材
lattice diamond license lattice diamond license lattice diamond license lattice diamond license lattice diamond license lattice diamond license
用lattice软件而又对E文头疼的同胞,这是一份相当省时省事有价值的资料,对你绝对有帮助!
lattice 的diamond 3.1 license
可以实现读取气象micaps-diamond11类数据
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文件下即可。。
lattice diamond 3.7 license 莱迪思(Lattice) 亲测保证可用
Diamond Fantasy
taobao Diamond 部分maven jar包
diamond图形学课设完整代码可运行
1、该文件无需绑定电脑MAC地址; 2、为通用版本; 3、亲测好用; 4、使用方法参见《FPGA开发之Diamond安装使用(一)》;
lattice 公司的开发软件: diamond , 在官网可以免费的申请对应的license.dat, 但是 对应的license 一方面需要匹配你电脑的网卡物理地址,而且有时间限制,更重要的是 可使用的ip都是最基本的. 现在这个license是无...
Lattice Diamond的有效破解在网上目前找不到,这个是我从厂家要到的,亲测Lattice_Diamond.2.0.0.154有效破解