论文部分内容阅读
随着应用业务系统越来越复杂,系统每次需要处理的数据量巨大而且还要做到快速响应,为了解决这个问题我们可以考虑使用缓存技术,并在缓存技术加入云计算的思想来提高系统的负载与扩展能力,因此云缓存的概念被提出。云缓存是以分布式技术为基础对缓存相关功能进行扩展,分布式技术不仅能提高系统性能,还可以增加系统的可靠性和可用性。本文将系统全面的介绍基于memcached的云缓存系统设计与实现。首先本文指出了传统memcached在实际应用环境中存在的问题,memcached是集中式,在面对大量并发请求时无法做到负载均衡且容易出现单点失效问题,memcached没有用户的概念,无法保证使用缓存用户的合法性。针对以上问题我对云缓存系统memcached版提出了多租户、服务高可用、数据高可靠以及系统易用性四点需求。根据需求本文给出了云缓存系统的整体架构和系统的详细的设计,将整个系统划分为四种类型节点分别为:访问节点、管理节点、数据节点和维护节点。其次是对各功能模块进行详细的设计和实现。访问节点需要对使用云缓存系统的用户进行身份验证,并通过统一控制器给每个用户分发唯一前缀来对用户的数据进行隔离,采用LVS技术结合Reactor模式以负载均衡的方式处理来自客户端的大规模并发请求;管理节点控制整个系统的活动信息,以B+树为基础建立数据存储信息索引,提高数据检索速度,使用HWF(最高权值优先)算法进行数据存储路由使数据均衡分布在多台数据节点上,为了保证数据的高可靠性,数据以多副本的形式保存,采用Master/Slave模型并结合MESI协议维护数据多副本的一致性和实现数据的读写分离;数据节点负责缓存数据的存储,以分块分片的方式对数据进行存储;维护节点会记录整个系统的操作日志和运行状况,供管理员和用户进行相关记录查询,对系统优化提供一定参考,并在系统出现异常时,能自动检测和修复异常,使系统具有一定的自我修复能力。最后,在实际环境中部署云缓存系统并对系统的相关功能和性能进行测试。结果表明系统完成了最初设计的相关功能,在性能测试中系统也有良好的表现,具有很好的I/O处理能力,能做到快速响应请求。