● 摘要
大型的互联网分布式应用系统通常由坐落在世界各地数据中心的数以千计的服务器和网络部件组成,因此具有高度分散和松耦合的特征。在这种环境下,以数据为中心的结构相比于传统J2EE体系结构更加灵活和轻量级,有利于简化系统逻辑,提高系统的可扩展性。在分布式数据中心中采用缓存技术,能够避免大量重复地存取相同数据,提高系统性能。通过研究和分析分布式数据存储的发展现状和此领域的工作成果,针对分布式系统中数据存储和分布的问题,基于分布式哈希表DHT设计了一种数据缓存机制,解决了分布式缓存中数据不一致以及数据版本管理的问题;在此基础上对分布式数据缓存与具体应用的结合方式进行了研究。论文主要工作体现在:(1) 基于分布式哈希表结构,设计数据缓存机制,提供方便的数据存取接口;采用的哈希环切分策略支持快速自举和节点恢复,对负载平衡提供了一定保证;提出哈希环虚拟节点的概念,有利于提高系统的可扩展性;对数据缓存节点执行失败探测,提升系统可靠性;(2) 应用基于消息传递的数据一致性算法Paxos,保证存储节点间的数据最终一致性;基于向量时钟算法,设计分布式缓存中的全局逻辑时钟,对数据版本全集进行有序记录,并提供灵活的数据版本融合策略满足系统需求;(3) 结合药物网格实际应用,基于分布式数据缓存实现了“推”和“拉”两种模式的任务分发机制;对系统性能进行了测试;与经典的Primary/Backup结构进行性能对比。结果证明基于分布式哈希表的数据缓存机制可以与具体项目有效结合,并给系统带来较好的性能表现。