一种使用分布式哈希表提高集群web服务性能的方法

文档序号:7924922阅读:147来源:国知局
专利名称:一种使用分布式哈希表提高集群web服务性能的方法
技术领域
本发明属于web服务应用技术领域,特别涉及一种使用分布式哈希表提高 集群web服务性能的方法。
背景技术
在web服务大行其道的今天,各具特色的服务纷纷被集成到web服务中, 对于热门的web服务应用,庞大的访问量对web整个系统包括web服务器、后 台的逻辑处理服务器、数据库服务器等都是巨大的考验。而且, 一旦用户的访 问请求得不到及时响应,对于追求急速网络冲浪的用户来讲体验将会非常差。
为緩和这一矛盾,除了根据业务量提高硬件服务的性能外,比如采用web 服务集群来分担业务请求,从软件、方法着手,也是在现有硬件条件下提高性 能的重要途径之一,比如采用緩存技术、静态内容技术等手段。集群技术是web 服务部署中常见的方式,采用这种方式后所发挥的失效转发和负载均衡功能可 以很好增强web服务的性能。而静态内容技术则是把用户需要经常访问但变动 不频繁的内容通过加载到内存后使用静态方式提供给用户,避免每次访问都从 数据库或其他服务获取,这样的方式可以极大的减轻后台服务的负荷,用户的 体验也得以改善。
从单方面来看,集群技术和静态内容技术都是增强web性能的重要手段, 但是如果使用前者,为了保证用户的体验结果的一致性,就不能采用静态内容 技术,无法减轻web系统包含逻辑处理、数据库服务等组件的压力;仅使用后 者,不能享受到集群技术中失效转发带来的系统冗余稳定性以及硬件增强带来 的性能飞跃。但是,将这两种技术结合同时应用在web服务中时,便产生了一
个问题。集群中的各个节点单独来看都是自行运行的web服务,静态内容都是 加载在各自的服务中的,如果各节点的静态内容一致,被转发到各节点的用户 请求返回的结果是相同的。如果静态页面加载的内容发生变化,则需要及时更 新各节点中的内容,否则从集群不同节点返回给用户的信息就不能保持一致。 因此,如何保证釆用了静态内容方式的web集群服务中各节点的静态内容的更 新后能够及时同步,是将集群技术和静态内容技术同时应用于web服务时必须 解决的问题。

发明内容
本发明针对将集群技术和静态内容技术同时应用于web服务时存在各节点 内容难以及时同步的问题,提出一种使用分布式哈希表提高集群web服务性能 的方法,可以有效地使各集群节点的静态内容保持同步更新,从而实现将集群 技术和静态内容技术同时应用于web服务以提高集群web服务的性能。
为解决上述技术问题,本发明提出的使用分布式哈希表提高集群web服务 性能的方法,在web服务启动配置中进行以下配置
(1) 配置分布式哈希表名称,用于在系统启动时构造网段内唯一名称的分 布式哈希表;
(2) 配置广"l番地址与端口,用于分布式"^合希表之间通讯;
(3) 配置静态内容列表,用于分布式哈希表控制器对象根据列表配置将相 应的静态内容加载到分布式哈希表;
(4) 添加静态内容装载定时任务对象,并配置静态内容装载定时间隔,用 于定时调用分布式哈希表控制器对象对分布式哈希表进行静态内容装载和更 新。
在web服务启动时,系统根据有关配置为每个集群节点自动生成一个名称 相同的分布式哈希表,然后将需要装载的静态内容加载到各分布式哈希表中。
在web服务运行时,定时或者主动激活分布式哈希表的同步功能使各集群 节点的静态内容保持同步更新。进一步地,在web服务启动过程中加栽静态内容时,首先将需要装载的静 态内容加载到主控分布式哈希表中,再由主控分布式哈希表通知其余非主控分 布式哈希表进行静态内容加载。所述主控分布式哈希表是最先启动的集群节点 的分布式哈希表,网段内主控分布式哈希表是唯一的,其他集群节点的分布式 哈希表均为非主控分布式哈希表。
进一步地,在web服务运行过程中更新静态内容时,首先更新主控分布式 哈希表中的静态内容,再由主控分布式哈希表通知其余非主控分布式哈希表进 行静态内容更新。
本发明方法通过^f吏用分布式哈希表,达到了静态内容在各集群节点及时地 同步更新的目的,从而使得集群技术和静态内容技术这两种手段可同时用于增 强web服务性能,在减轻系统压力的同时,也能使系统冗余稳定,并且不会影 响到用户体验的一致性。


图1为使用分布式哈希表加载静态内容的集群web服务结构示意图; 图2为使用分布式哈希表更新静态内容的示意图3为web服务启动时分布式哈希表加载静态内容并同步到其它集群节点 的时序图4为分布式哈希表定时更新静态内容并同步到其它集群节点的时序图。
具体实施例方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结 合附图及实施例,对本发明提出的使用分布式哈希表提高集群web服务性能的 方法详细il明々o下。
为使用分布式哈希表提高集群web服务性能,本发明在在web服务启动配 置中进行一系列配置,包括配置分布式哈希表名称、配置广播地址与端口、配 置静态内容列表、添加静态内容装载定时任务对象并配置静态内容装载定时间
隔等。集群web服务启动时,系统根据有关配置为每个集群节点自动生成一个 名称相同的分布式哈希表,其中最先启动的集群节点的分布式哈希表自动成为 主控分布式哈希表,后续启动的其他集群节点的分布式哈希表均成为非主控分 布式哈希表。
图1是本发明使用分布式哈希表加载静态内容的集群web服务结构示意图。 如图所示,每个集群节点都有一个名称为A的分布式哈希表,并且通过启动加 载和运行中同步更新保持相同的静态内容。
图2是使用分布式哈希表更新静态内容的示意图。如图所示,在静态内容 发生变化后,系统首先判断本节点的分布式哈希表是否是主控分布式哈希表, 如果是则更新本分布式哈希表的静态内容,否则等到接收到主控分布式哈希表 的广播通知后再更新。图2中,第二 web集群节点的分布式哈希表是主控分布 式哈希表。
集群web服务启动时,本发明分布式哈希表加载静态内容并同步到其它集 群节点的过程如图3所示,详细流程如下
步骤301,启动时,在web服务启动中注册的Servlet对象调用读取web配 置对象;
步骤302,读取web配置对象后,根据配置文件读取要加载的静态内容列表; 步骤303,启动静态内容装载定时任务对象,纳入定时队列管理中; 步骤304,静态内容装载定时任务对象启动并单例化分布式哈希表控制器对 象,分布式哈希表控制器对象初始化分布式哈希表对象,分布式哈希表对象的 名称从配置文件读取,在网段内唯一,即集群各节点中的分布式哈希表对象名 称相同;
步骤305,分布式哈希表控制器对象判断已初始化的分布式哈希表是否是主 控分布式哈希表。如果不是则进入等待主控分布式哈希表的广播消息;如果是 则执行步骤306;
步骤306,分布式哈希表控制器对象根据静态内容配置列表,从数据库中读 取相应内容并生成静态对象加载到主控分布式哈希表中;
步骤307,主控分布式哈希表以广播方式通知本网段内的同名称的非主控分
布式哈希表加载静态内容。收到广播消息后,非主控分布式哈希表对象主动去 主控分布式哈希表中获取内容并加载,从而完成集群中所有节点对静态内容的 加载。
在所有集群节点加载静态内容完毕后,系统进入定时更新分布式哈希表内
容的控制中。如果某个集群节点web服务正常关闭或者运行异常导致关闭, Servlet侦听对象将移除定时任务,并通知分布式哈希表控制器对象释放本节点 的分布式哈希表。如果本节点是主控节点,则由另外一个节点接替主控节点的 角色,保证网段内集群web服务的主控分布式哈希表有且唯一,其接替机制可 以采用开源组织jroups的相关现有做法。
在集群web服务运行中,如果加载静态内容任务的定时时间到来或者主动 激活重新加载静态内容,本发明分布式哈希表更新静态内容并同步到其它集群 节点的过程如图4所示,详细流程如下
步骤401 ,静态内容加载定时任务对象获取分布式哈希表控制器对象; 步骤402,分布式哈希表控制器对象判断已初始化的分布式哈希表是否是主 控分布式哈希表。如果不是则进入等待主控分布式哈希表的广播消息;如果是 则执行步骤403;
步骤403,分布式哈希表控制器对象根据静态内容配置列表,从数据库中重 新读取内容并更新静态对象重新加载到主控分布式哈希表中;
步骤404,主控分布式哈希表以广播方式通知本网段内的同名称的非主控分 布式哈希表更新静态内容。收到广播消息后,非主控分布式哈希表对象主动去 主控分布式哈希表中获取内容并加载,从而完成集群中所有节点对静态内容的 更新。
在web服务运行过程中,如果某个集群节点web服务正常关闭或者运行异 常导致关闭,Servlet侦听对象将移除定时任务,并通知分布式哈希表控制器对 象释放本节点的分布式哈希表;如果本节点是主控节点,则由另外一个节点接 替主控节点的角色,保证网段内集群web服务的主控分布式哈希表有且唯一,其接替机制可以采用开源组织jroups的相关现有做法。
本发明中,分布式哈希表控制器对象可通过调用分布式哈希表的put方法实 现在分布式哈希表中增加静态数据,可通过调用分布式哈希表的remove方法实 现在分布式哈希表中删除静态数据,可通过先后调用分布式哈希表的remove和 put方法实现在分布式哈希表中更新静态数据,这些方法都是开源组织jroups有 关分布式哈希表的现有技术。
通过具体实施方式
的说明,当可对本发明为达成预定目的所采取的技术手 段及功效得以更加深入且具体的了解,然而具体实施方式
及所附图示仅是提供 参考与说明之用,并非用来对本发明加以限制。
权利要求
1.一种使用分布式哈希表提高集群web服务性能的方法,其特征在于,在web服务启动配置中进行以下配置(1)配置分布式哈希表名称,用于在系统启动时构造网段内唯一名称的分布式哈希表;(2)配置广播地址与端口,用于分布式哈希表之间通讯;(3)配置静态内容列表,用于分布式哈希表控制器对象根据列表配置将相应的静态内容加载到分布式哈希表;(4)添加静态内容装载定时任务对象,并配置静态内容装载定时间隔,用于定时调用分布式哈希表控制器对象对分布式哈希表进行静态内容装载和更新;在web服务启动时,系统根据有关配置为每个集群节点自动生成一个名称相同的分布式哈希表,然后将需要装载的静态内容加载到各分布式哈希表中;在web服务运行时,定时或者主动激活分布式哈希表的同步功能使各集群节点的静态内容保持同步更新。
2、 根据权利要求1所述使用分布式哈希表提高集群web服务性能的方法, 其特征在于,在web服务启动过程中加载静态内容时,首先将需要装载的静态 内容加载到主控分布式哈希表中,再由主控分布式哈希表通知其余非主控分布 式哈希表进行静态内容加载;所述主控分布式哈希表是最先启动的集群节点的 分布式哈希表。
3 、根据权利要求2所述使用分布式哈希表提高集群web服务性能的方法, 其特征在于,在web服务运行过程中更新静态内容时,首先更新主控分布式哈 希表中的静态内容,再由主控分布式哈希表通知其余非主控分布式哈希表进行 静态内容更新。
4、 根据权利要求1 、 2或3所述使用分布式哈希表提高集群web服务性能 的方法,其特征在于,在web服务启动时加载静态内容的具体过程包括如下步 骤步骤301,启动时,在web服务启动中注册的Servlet对象调用读取web配 置对象;步骤302,读取web配置对象后,根据配置文件读取要加载的静态内容列表;步骤303,启动静态内容装载定时任务对象,纳入定时队列管理中;步骤304,静态内容装载定时任务对象启动并单例化分布式哈希表控制器对象,分布式哈希表控制器对象初始化分布式哈希表对象,分布式哈希表对象的名称从配置文件读取;步骤305,分布式哈希表控制器对象判断已初始化的分布式哈希表是否是主控分布式哈希表,如果不是则进入等待主控分布式哈希表的广播消息,如果是则执行步骤306;步骤306,分布式哈希表控制器对象根据静态内容配置列表,从数据库中读 取相应内容并生成静态对象加载到主控分布式哈希表中;步骤307,主控分布式哈希表以广播方式通知本网段内的同名称的非主控分 布式哈希表加载静态内容;收到广播消息后,非主控分布式哈希表对象主动去 主控分布式哈希表中获取内容并加载。
5、 根据权利要求1、 2或3所述使用分布式哈希表提高集群web服务性能 的方法,其特征在于,在web服务运行过程中更新静态内容的具体过程包括如 下步骤步骤401,静态内容加载定时任务对象获取分布式哈希表控制器对象; 步骤402,分布式哈希表控制器对象判断已初始化的分布式哈希表是否是主控分布式哈希表,如果不是则进入等待主控分布式哈希表的广播消息,如果是则执行步骤403;步骤403,分布式哈希表控制器对象根据静态内容配置列表,从数据库中重 新读取内容并更新静态对象重新加载到主控分布式哈希表中; 步骤404 ,主控分布式哈希表以广播方式通知本网段内的同名称的非主控分布式哈希表更新静态内容;收到广播消息后,非主控分布式哈希表对象主动去主控分布式哈希表中获取内容并更新。
6 、根据权利要求4所述使用分布式哈希表提高集群web服务性能的方法,其特征在于,在web服务运行过程中更新静态内容的具体过程包括如下步骤 步骤401,静态内容加载定时任务对象获取分布式哈希表控制器对象; 步骤402,分布式哈希表控制器对象判断已初始化的分布式哈希表是否是主控分布式哈希表,如果不是则进入等待主控分布式哈希表的广播消息,如果是则执行步骤403;步骤403,分布式哈希表控制器对象根据静态内容配置列表,从数据库中重 新读取内容并更新静态对象重新加载到主控分布式哈希表中;步骤404,主控分布式哈希表以广播方式通知本网段内的同名称的非主控分 布式哈希表更新静态内容;收到广播消息后,非主控分布式哈希表对象主动去 主控分布式哈希表中获取内容并更新。
7、 根据权利要求5所述使用分布式哈希表提高集群web服务性能的方法, 其特征在于,在web服务运行过程中,当某个集群节点web服务关闭时,Servlet 侦听对象移除定时任务,并通知分布式哈希表控制器对象释放本节点的分布式 哈希表。
8、 根据权利要求6所述使用分布式哈希表提高集群web服务性能的方法, 其特征在于,在web服务运行过程中,当某个集群节点web服务关闭时,Servlet 侦听对象移除定时任务,并通知分布式哈希表控制器对象释放本节点的分布式 哈希表。
全文摘要
本发明公开了一种使用分布式哈希表提高集群web服务性能的方法,在web服务启动配置中进行一系列配置,包括配置分布式哈希表名称、配置广播地址与端口、配置静态内容列表、添加静态内容装载定时任务对象并配置静态内容装载定时间隔等。集群web服务启动时,系统根据有关配置为每个集群节点自动生成一个名称相同的分布式哈希表,然后将需要装载的静态内容加载到各分布式哈希表中。在web服务运行时,定时或者主动激活分布式哈希表的同步功能使各集群节点的静态内容保持同步更新。本发明方法通过使用分布式哈希表,使得集群技术和静态内容技术可同时用于增强web服务性能,在减轻系统压力的同时,也能使系统冗余稳定。
文档编号H04L29/06GK101369923SQ20081021175
公开日2009年2月18日 申请日期2008年9月24日 优先权日2008年9月24日
发明者李亚滨, 曦 陈 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1