实现互联网投票的方法、服务器、投票处理节点及***
技术领域
本发明涉及互联网领域,特别涉及一种实现互联网投票的方法、服务器、投票处理节点及***。
背景技术
随着互联网技术的迅速发展,出现了越来越多的互联网交互服务。互联网投票作为互联网交互服务中的一种,凭借实时性、快捷性等优点,被应用于很多节目的投票环节中。具体地,当使用互联网投票时,通常会设置一个为某节目投票的投票***,客户端通过该投票***提供的投票网页进行投票。为了使观众能够实时通过互联网进行投票、让观众很好地与节目互动、增强观众的现场感,有必要提出一种实现互联网投票的方法。
相关技术在实现互联网投票时,通常会开发一套投票***,该***包括客户端和服务器,通过客户端和服务器的交互来实现互联网投票。具体地,当客户端需要进行投票时,向服务器发送投票请求;服务器接收客户端发送的投票请求后,为客户端提供投票服务;在各个客户端投票后,服务器处理各个客户端的选票信息,以获得具体的投票结果。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
由于相关技术在实现互联网投票时,客户端直接与服务器进行交互,即投票***仅支持单节点服务。在这种情况下,当服务器由于故障而不能提供投票服务时,客户端不能参与投票。另外,当同一时刻参与投票的客户端众多时,服务器可能会达到一个瓶颈状态,导致客户端不能及时投票,给用户造成不好的操作体验的同时,影响服务器处理投票的效率。
发明内容
为了解决相关技术的问题,本发明实施例提供了一种实现互联网投票的方法、服务器、投票处理节点及***。所述技术方案如下:
第一方面,提供了一种实现互联网投票的方法,所述方法包括:
接收客户端发送的投票请求,所述投票请求携带用户标识;
从预设的多个投票处理节点中选择与所述用户标识匹配的目标投票处理节点,并将所述投票请求转发给所述目标投票处理节点,使所述目标投票处理节点为所述客户端提供投票服务。
结合第一方面,在第一方面的第一种可能的实现方式中,所述接收客户端发送的投票请求之前,还包括:
接收所述客户端发送的投票配置信息获取请求;
根据所述投票配置信息获取请求获取综合投票配置信息,所述综合投票配置信息包括投票状态信息、当前票数信息以及投票选项信息;
将获取到的综合投票配置信息发送给所述客户端,使所述客户端根据所述投票选项信息确定是否进行投票,且如果确定进行投票,则发送投票请求。
结合第一方面,在第一方面的第二种可能的实现方式中,所述从预设的多个投票处理节点中选择与所述用户标识匹配的目标投票处理节点之前,还包括:
对预先设置的多个投票处理节点进行分组,并设置每组投票处理节点与用户标识之间的对应关系;
所述从预设的多个投票处理节点中选择与所述用户标识匹配的目标投票处理节点,包括:
根据设置的每组投票处理节点与用户标识之间的对应关系确定所述用户标识对应的投票处理节点所在分组,并在确定的分组中选择一个与所述用户标识匹配的投票处理节点作为目标投票处理节点。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述对预先设置的多个投票处理节点进行分组之前,还包括:
从所述多个投票处理节点中选择一个投票处理节点作为主投票处理节点,所述主投票处理节点用于定时统计其他投票处理节点的投票配置信息以获得综合投票配置信息后,将所述综合投票配置信息广播给各个客户端以及其它投票处理节点,所述投票配置信息包括每个投票处理节点的本地投票状态信息、本地当前票数信息以及本地投票选项信息;
所述根据所述投票配置信息获取请求获取综合投票配置信息,包括:
根据所述投票配置信息获取请求从所述主投票处理节点获取所述综合投票配置信息,或者,在所述主投票处理节点将所述综合投票配置信息广播至每个投票处理节点后,从任意一个投票处理节点获取综合投票配置信息。
结合第一方面,在第一方面的第四种可能的实现方式中,所述将所述投票请求转发给所述目标投票处理节点之后,还包括:
如果所述目标处理节点出现故障,则屏蔽所述目标投票处理节点,并分配所述多个投票处理节点中除所述目标投票处理节点之外的投票处理节点处理所述目标投票处理节点当前处理的投票数据。
第二方面,提供了一种实现互联网投票的方法,所述方法包括:
接收服务器转发的投票请求,所述投票请求为客户端发送至所述服务器的请求,且所述投票请求携带匹配的用户标识;
根据所述投票请求为所述客户端提供投票服务。
结合第二方面,在第二方面的第一种可能的实现方式中,所述接收服务器转发的投票请求之前,还包括:
接收所述服务器转发的投票配置信息获取请求,所述投票配置信息获取请求由所述客户端发送至所述服务器;
根据所述投票配置信息获取请求获取综合投票配置信息,所述综合投票配置信息包括投票状态信息、当前票数信息以及投票选项信息;
将获取到的综合投票配置信息发送给所述服务器,使所述服务器将所述综合投票配置信息转发给所述客户端后,使所述客户端根据所述投票选项信息确定是否进行投票,且如果进行投票,则发送投票请求。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述根据所述投票请求为所述客户端提供投票服务,包括:
根据所述投票状态信息为所述客户端提供投票选项信息,接收并缓存所述客户端从所述投票选项信息中选择投票对象并发送的选票信息;
聚合预设时间内缓存的不同客户端选择的相同投票对象的选票信息,并处理聚合后的选票信息,得到投票配置信息,所述投票配置信息包括本地投票状态信息、本地当前票数信息以及本地投票选项信息。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述处理聚合后的选票信息,得到投票配置信息之后,还包括:
同步所述投票配置信息至主投票处理节点,使所述主投票处理节点定时统计每个投票处理节点的投票配置信息得到综合投票配置信息,所述主投票处理节点为所述服务器授权的用于定时统计所述多个投票处理节点的投票配置信息的投票处理节点。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述根据所述投票请求为所述客户端提供投票服务之后,还包括:
接收所述服务器发送的切换命令;
根据所述切换命令切换为主投票处理节点,并在切换为主投票处理节点后,定时统计所述多个投票处理节点的投票配置信息获得综合投票配置信息,将所述综合投票配置信息广播给各个客户端以及所述多个投票处理节点中的其它投票处理节点。
第三方面,提供了一种服务器,所述服务器包括:
第一接收模块,用于接收客户端发送的投票请求,所述投票请求携带用户标识;
选择模块,用于从预设的多个投票处理节点中选择与所述用户标识匹配的目标投票处理节点;
转发模块,用于将所述投票请求转发给所述目标投票处理节点,使所述目标投票处理节点为所述客户端提供投票服务。
结合第三方面,在第三方面的第一种可能的实现方式中,所述服务器,还包括:
第二接收模块,用于接收所述客户端发送的投票配置信息获取请求;
获取模块,用于根据所述投票配置信息获取请求获取综合投票配置信息,所述综合投票配置信息包括投票状态信息、当前票数信息以及投票选项信息;
发送模块,用于将获取到的综合投票配置信息发送给所述客户端,使所述客户端根据所述投票选项信息确定是否进行投票,且如果确定进行投票,则发送投票请求。
结合第三方面,在第三方面的第二种可能的实现方式中,所述服务器,还包括:
分组模块,用于对预先设置的多个投票处理节点进行分组,并设置每组投票处理节点与用户标识之间的对应关系;
所述选择模块,用于根据设置的每组投票处理节点与用户标识之间的对应关系确定所述用户标识对应的投票处理节点所在分组,并在确定的分组中选择一个与所述用户标识匹配的投票处理节点作为目标投票处理节点。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述选择模块,还用于从所述多个投票处理节点中选择一个投票处理节点作为主投票处理节点,所述主投票处理节点用于定时统计其他投票处理节点的投票配置信息以获得综合投票配置信息后,将所述综合投票配置信息广播给各个客户端以及其它投票处理节点,所述投票配置信息包括每个投票处理节点的本地投票状态信息、本地当前票数信息以及本地投票选项信息;
所述获取模块,用于根据所述投票配置信息获取请求从所述主投票处理节点获取所述综合投票配置信息,或者,在所述主投票处理节点将所述综合投票配置信息广播至每个投票处理节点后,从任意一个投票处理节点获取综合投票配置信息。
结合第三方面,在第三方面的第四种可能的实现方式中,所述服务器,还包括:
屏蔽模块,用于当所述目标处理节点出现故障时,屏蔽所述目标投票处理节点;
分配模块,用于分配所述多个投票处理节点中除所述目标投票处理节点之外的投票处理节点处理所述目标投票处理节点当前处理的投票数据。
第四方面,提供了一种投票处理节点,所述投票处理节点包括:
第一接收模块,用于接收服务器转发的投票请求,所述投票请求为客户端发送至所述服务器的请求,且所述投票请求携带匹配的用户标识;
投票服务模块,用于根据所述投票请求为所述客户端提供投票服务。
结合第四方面,在第四方面的第一种可能的实现方式中,所述投票处理节点,还包括:
第二接收模块,用于接收所述服务器转发的投票配置信息获取请求,所述投票配置信息获取请求由所述客户端发送至所述服务器;
获取模块,用于根据所述投票配置信息获取请求获取综合投票配置信息,所述综合投票配置信息包括投票状态信息、当前票数信息以及投票选项信息;
发送模块,用于将获取到的综合投票配置信息发送给所述服务器,使所述服务器将所述综合投票配置信息转发给所述客户端后,使所述客户端根据所述投票选项信息确定是否进行投票,且如果进行投票,则发送投票请求。
结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述投票服务模块,包括:
提供投票选项单元,用于根据所述投票状态信息为所述客户端提供投票选项信息;
接收单元,用于接收所述客户端从所述投票选项信息中选择投票对象并发送的选票信息;
缓存单元,用于缓存所述客户端从所述投票选项信息中选择投票对象并发送的选票信息;
聚合单元,用于聚合预设时间内缓存的不同客户端选择的相同投票对象的选票信息;
处理单元,用于处理聚合后的选票信息,得到投票配置信息,所述投票配置信息包括本地投票状态信息、本地当前票数信息以及本地投票选项信息。
结合第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述投票处理节点,还包括:
同步模块,用于同步所述投票配置信息至主投票处理节点,使所述主投票处理节点定时统计每个投票处理节点的投票配置信息得到综合投票配置信息,所述主投票处理节点为所述服务器授权的用于定时统计所述多个投票处理节点的投票配置信息的投票处理节点。
结合第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,所述投票处理节点,还包括:
第三接收模块,用于接收所述服务器发送的切换命令;
切换模块,用于根据所述切换命令切换为主投票处理节点;
统计模块,用于在切换为主投票处理节点后,定时统计所述多个投票处理节点的投票配置信息获得综合投票配置信息;
广播模块,用于将获得的综合投票配置信息广播给各个客户端以及所述多个投票处理节点中的其它投票处理节点。
第五方面,提供了一种实现互联网投票的***,所述***包括:服务器和多个投票处理节点;
其中,服务器如上述第三方面所述的服务器;
多个投票处理节点中的每个投票处理节点如上述第四方面所述的投票处理节点。
本发明实施例提供的技术方案带来的有益效果是:
通过从预设的多个投票处理节点中选择与用户标识匹配的目标投票处理节点来为客户端提供投票服务,确保在实现互联网投票时,当同一时刻参与投票的客户端众多时,可以由多个投票处理节点来为客户端提供投票服务,提高***处理投票效率的同时,能够给用户带来良好的操作体验。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实现互联网投票的方法的实施环境示意图;
图2是本发明实施例一提供的一种实现互联网投票的方法流程图;
图3是本发明实施例一提供的另一种实现互联网投票的方法流程图;
图4是本发明实施例二提供的一种实现互联网投票的方法流程图;
图5是本发明实施例三提供的第一种服务器的结构示意图;
图6是本发明实施例三提供的第二种服务器的结构示意图;
图7是本发明实施例三提供的第三种服务器的结构示意图;
图8是本发明实施例三提供的第四种服务器的结构示意图;
图9是本发明实施例四提供的第一种投票处理节点的结构示意图;
图10是本发明实施例四提供的第二种投票处理节点的结构示意图;
图11是本发明实施例四提供的一种投票服务模块的结构示意图;
图12本发明实施例四提供的第三种投票处理节点的结构示意图;
图13本发明实施例四提供的第四种投票处理节点的结构示意图;
图14是本发明实施例五提供的一种实现互联网投票的***的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
如图1所示,其示出了本发明实施例提供的一种实现互联网投票的方法的实施环境结构示意图。在图1所示的实施环境中,提供了一种投票***,该投票***包括多个客户端、服务器和多个投票处理节点。在本发明实施例中,当用户需要通过互联网参与某活动的投票时,可以通过所在的客户端登录该投票***,然后通过向服务器发送投票请求,由服务器从预设的多个投票处理节点中选择一个投票处理节点为客户端提供投票服务。其中,多个投票处理节点可以分布在不同的地区或者分布在不同的ISP(Internet ServiceProvider,互联网提供服务商)设备中。当为客户端提供投票服务时,服务器从多个投票处理节点中选择一个投票处理节点为客户端提供投票服务。例如,可以选择一个与客户端处于同一ISP中的投票处理节点为客户端提供投票服务。
为了便于说明,在本发明实施例中,将服务器选择的为客户端提供投票服务的投票处理节点定义为目标投票处理节点。另外,为了使客户端能够获取到投票的实时进展情况,服务器可以在多个投票处理节点中选择一个投票处理节点作为主投票处理节点,用于定时统计每个投票处理节点的投票状况。
下面将结合各个实施例对本发明实施例提供的实现互联网投票的方法进行详细说明,具体详见下述实施例一和实施例二:
实施例一
结合图1示出的实施环境结构示意图和上述内容,本发明实施例提供了一种实现互联网投票的方法。以服务器执行本发明实施例提供的方法的角度为例,参见图2,本发明实施例提供的方法流程包括:
201:接收客户端发送的投票请求,该投票请求携带用户标识;
202:从预设的多个投票处理节点中选择与用户标识匹配的目标投票处理节点,并将投票请求转发给目标投票处理节点,使目标投票处理节点为客户端提供投票服务。
优选地,接收客户端发送的投票请求之前,还包括:
接收客户端发送的投票配置信息获取请求;
根据投票配置信息获取请求获取综合投票配置信息,该综合投票配置信息包括投票状态信息、当前票数信息以及投票选项信息;
将获取到的综合投票配置信息发送给客户端,使客户端根据投票选项信息确定是否进行投票,且如果确定进行投票,则发送投票请求。
优选地,从预设的多个投票处理节点中选择与用户标识匹配的目标投票处理节点之前,还包括:
对预先设置的多个投票处理节点进行分组,并设置每组投票处理节点与用户标识之间的对应关系;
从预设的多个投票处理节点中选择与用户标识匹配的目标投票处理节点,包括:
根据设置的每组投票处理节点与用户标识之间的对应关系确定用户标识对应的投票处理节点所在分组,并在确定的分组中选择一个与用户标识匹配的投票处理节点作为目标投票处理节点。
优选地,对预先设置的多个投票处理节点进行分组之前,还包括:
从多个投票处理节点中选择一个投票处理节点作为主投票处理节点,该主投票处理节点用于定时统计其他投票处理节点的投票配置信息以获得综合投票配置信息后,将综合投票配置信息广播给各个客户端以及其它投票处理节点,其中,投票配置信息包括每个投票处理节点的本地投票状态信息、本地当前票数信息以及本地投票选项信息;
根据投票配置信息获取请求获取综合投票配置信息,包括:
根据投票配置信息获取请求从主投票处理节点获取综合投票配置信息,或者,在主投票处理节点将综合投票配置信息广播至每个投票处理节点后,从任意一个投票处理节点获取综合投票配置信息。
优选地,将投票请求转发给目标投票处理节点之后,还包括:
如果目标处理节点出现故障,则屏蔽目标投票处理节点,并分配多个投票处理节点中除目标投票处理节点之外的一个或多个投票处理节点处理目标投票处理节点当前处理的投票数据。
以多个投票处理节点中的任一投票处理节点执行本发明实施例提供的方法的角度为例,参见图3,本发明实施例提供的方法流程包括:
301:接收服务器转发的投票请求,该投票请求为客户端发送至服务器的请求,且投票请求携带匹配的用户标识。
302:根据投票请求为客户端提供投票服务。
优选地,接收服务器转发的投票请求之前,还包括:
接收服务器转发的投票配置信息获取请求,该投票配置信息获取请求由客户端发送至服务器;
根据投票配置信息获取请求获取综合投票配置信息,该综合投票配置信息包括投票状态信息、当前票数信息以及投票选项信息;
将获取到的综合投票配置信息发送给服务器,使服务器将综合投票配置信息转发给客户端后,使客户端根据投票选项信息确定是否进行投票,且如果进行投票,则发送投票请求。
优选地,根据投票请求为客户端提供投票服务,包括:
根据投票状态信息为客户端提供投票选项信息,接收并缓存客户端从投票选项信息中选择投票对象并发送的选票信息;
聚合预设时间内缓存的不同客户端选择的相同投票对象的选票信息,并处理聚合后的选票信息,得到投票配置信息,该投票配置信息包括本地投票状态信息、本地当前票数信息以及本地投票选项信息。
优选地,处理聚合后的选票信息,得到投票配置信息之后,还包括:
同步投票配置信息至主投票处理节点,使主投票处理节点定时统计每个投票处理节点的投票配置信息得到综合投票配置信息,主投票处理节点为服务器授权的用于定时统计多个投票处理节点的投票配置信息的投票处理节点。
优选地,根据投票请求为客户端提供投票服务之后,还包括:
接收服务器发送的切换命令;
根据切换命令切换为主投票处理节点,并在切换为主投票处理节点后,定时统计多个投票处理节点的投票配置信息获得综合投票配置信息,将综合投票配置信息广播给各个客户端以及多个投票处理节点中的其它投票处理节点。
本发明实施例提供的方法,通过从预设的多个投票处理节点中选择与用户标识匹配的目标投票处理节点来为客户端提供投票服务,确保在实现互联网投票时,当同一时刻参与投票的客户端众多时,可以由多个投票处理节点来为客户端提供投票服务,提高***处理投票效率的同时,能够给用户带来良好的操作体验。
实施例二
结合图1示出的实施环境结构示意图和上述实施例一的内容,本发明实施例提供了一种实现互联网投票的方法。参见图4,本发明实施例提供的方法流程包括:
401:服务器对预设的多个投票处理节点进行分组,并设置每组投票处理节点与用户标识之间的对应关系。
由于本发明实施例提供的实现互联网投票的方法支持多点服务,即投票***包括多个投票处理节点,由多个投票处理节点同时为不同的客户端提供投票服务。因此,服务器可以为投票***中预设的多个投票处理节点进行分组,并且在对预设的多个投票处理节点进行分组之后,在为客户端提供投票服务时,可以由不同分组中的投票处理节点为不同客户端提供投票服务。
关于服务器对预设的多个投票处理节点进行分组的方式,可以有多种。例如,服务器在对多个投票处理节点进行分组时,可以按照地区进行分组,即由不同分组中的投票处理节点分别为不同地区的客户端提供投票服务。例如,服务器可以控制北京地区的投票处理节点为北京地区的客户端提供投票服务。服务器也可以按照ISP对多个投票处理节点进行分组,此时,服务器根据客户端的ISP选择与客户端的ISP匹配的投票处理节点为客户端提供投票服务。
另外,当服务器对预设的多个投票处理节点进行分组之后,即可由不同分组中的投票处理节点为不同客户端提供投票服务。在此种情况下,为了在为客户端提供投票服务时,能够快速地从多个投票处理节点中选择能为客户端提供投票服务的投票处理节点,服务器可以设置每组投票处理节点与用户标识之间的对应关系。本发明实施例不对服务器设置每组投票处理节点与用户标识之间的对应关系的方式进行具体限定。例如,服务器可以设置投票处理节点和客户端所处的地区之间的对应关系。
需要说明的是,由于该步骤是服务器在对客户端提供投票服务之前进行的操作,因此,本步骤无需在每次为客户端提供投票服务时均执行。如果分组发生变化或是需要更新时,可以再次执行本步骤。
402:服务器从预设的多个投票处理节点中选择一个投票处理节点作为主投票处理节点,该主投票处理节点用于定时统计其它投票处理节点的投票配置信息以获得综合投票配置信息,该综合投票配置信息包括投票状态信息、当前票数信息以及投票选项信息。
为了使客户端或者投票***中的其它投票处理节点能够实时获取投票的进展情况,服务器可以从预设的多个投票处理节点中选择一个投票处理节点作为主投票处理节点,且该主投票处理节点全局唯一,用于定时统计其它投票处理节点的投票配置信息以获得综合投票配置信息。另外,主投票处理节点在获得综合投票配置信息后,可以将该综合投票配置信息广播给各个客户端以及其它投票处理节点,以使客户端更新UI(UserInterface,用户界面)显示或者使其它投票处理节点实时获得当前的投票进展情况。
其中,综合投票配置信息包括投票状态信息、当前票数信息以及投票选项信息。投票状态信息用于表明投票的状态,如投票进行中,投票未开始或者投票已结束等。当前票数信息用于表明每个投票对象当前获得的票数以及各个投票对象获得的票数之间的关系等。投票选项信息用于当投票状态信息为进行中时,给用户提供投票选项,以供用户选择进行投票。
关于服务器从预设的多个投票处理节点中选择一个投票处理节点作为主投票处理节点的方式,可以有很多种。例如,服务器可以限定预设的多个投票处理节点中的某个投票处理节点为固定的主投票处理节点;也可根据预设的多个投票处理节点的投票处理情况确定主投票处理节点,例如,服务器可以根据多个投票处理节点处理的客户端的投票数量的多少确定主投票处理节点;也可预先选定一些投票处理节点,并设置各个选定的投票处理节点作为主投票处理节点的时间,使得不同的时刻分别由不同的投票处理节点作为主投票处理节点等。
进一步地,主投票处理节点定时统计其它投票处理节点的投票配置信息以获得综合投票配置信息的方式,具体为:各个投票处理节点定时同步自身的投票配置信息至主投票处理节点;主投票处理节点定时统计每个投票处理节点同步的投票配置信息得到综合投票配置信息。其中,每个投票处理节点的投票配置信息包括每个投票处理节点的本地投票状态信息、本地当前票数信息以及本地投票选项信息。其中,本地投票状态信息用于表明本地的投票状态是进行中、已完成或未开始等。本地当前票数信息用于表明本地当前获得的各个投票对象的票数。本地投票选项信息用于当投票状态信息为进行中时,给用户提供投票选项,此时客户端对应的用户即可通过投票选项进行投票。关于主投票处理节点定时统计的时间间隔,本发明实施例不作具体限定,例如,可以为5min(分钟)、10min等。当然,为了使各个客户端和其它投票处理节点能够实时获得投票的进展情况,该定时统计的时间间隔越短越好。
需要说明的是,该步骤也不是每次提供投票服务都需要进行的,可以根据服务器选择主投票处理节点的方式执行。例如,如果服务器选择某个固定的投票处理节点为主投票处理节点,则该步骤需执行一次即可;如果服务器定时选择某些投票处理节点为主投票处理节点,则该步骤需定时执行即可,等等。
403:服务器接收客户端发送的投票配置信息获取请求,并将该投票配置信息获取请求转发给目标投票处理节点。
客户端在参与投票之前,为了获得当前的投票进展状况,需要向服务器发送投票配置信息获取请求。此时,服务器接收客户端发送的投票配置信息获取请求,并将该投票配置信息获取请求转发给目标投票处理节点。关于服务器接收客户端发送的投票配置信息获取请求以及将该投票配置信息获取请求转发给目标投票处理节点的方式,本发明实施例不作具体限定。
需要说明的是,服务器在将该投票配置信息获取请求转发给目标投票处理节点之前,可以从预设的多个投票处理节点中选择一个投票处理节点作为目标投票处理节点。其中,服务器从预设的多个投票处理节点中选择一个投票处理节点作为目标投票处理节点的方式,可以有很多种,例如,服务器可以根据发送该投票配置信息获取请求的客户端对应的用户标识从预设的多个投票处理节点中选择一个与该用户标识匹配的投票处理节点作为目标投票处理节点。例如,如果该用户标识携带用户的地区信息,则服务器可以根据用户的地区信息从该用户所在的地区中选择一个投票处理节点作为目标投票处理节点。另外,由于主投票处理节点在获得综合投票配置信息后,会将该综合投票配置信息同步至该投票***中的其它各个投票处理节点,因此,服务器在转发客户端发送的投票配置信息获取请求之前,也可以随机选择一个投票处理节点作为目标投票处理节点后,将该投票配置信息获取请求转发给目标投票处理节点。当然,为了使客户端快速获得综合投票配置信息,在本发明实施例中,优先选择与客户端处于同一地区或同一ISP中的投票处理节点作为目标投票处理节点。
404:目标投票处理节点接收服务器转发的投票配置信息获取请求,根据投票配置信息获取请求获取综合投票配置信息。
其中,本发明实施例不对目标投票处理节点接收服务器转发的投票配置信息获取请求的方式进行具体限定。
关于目标投票处理节点根据投票配置信息获取请求获取综合投票配置信息的方式,可以有很多种。例如,目标投票处理节点可以向主投票处理节点请求主投票处理节点当前统计的综合投票配置信息来获得综合投票配置信息;也可以先检测接收该投票配置信息获取请求的时刻与主投票处理节点上次同步统计的综合投票配置信息时刻之间的时间间隔。当该时间间隔很小时,目标投票处理节点可以直接将主投票处理节点上次同步统计的综合投票配置信息作为获取的综合投票配置信息。
另外,在本发明实施例中,服务器为了实时掌握投票的进展状况,也需要根据投票配置信息实时获取投票配置信息。其中,服务器根据投票配置信息获取请求获取综合投票配置信息的方式,包括但不限于根据投票配置信息获取请求从主投票处理节点获取综合投票配置信息,或者,在主投票处理节点将综合投票配置信息广播至每个投票处理节点后,从任意一个投票处理节点获取综合投票配置信息。
405:目标投票处理节点将获取到的综合投票配置信息发送给服务器,服务器将综合投票配置信息转发给客户端后,客户端根据投票选项信息确定是否进行投票,且如果进行投票,则向服务器发送投票请求。
其中,本发明实施例不对目标投票处理节点将获取到的综合投票配置信息发送给服务器以及服务器将综合投票配置信息转发给客户端的方式进行具体限定。
当服务器将综合投票配置信息转发给客户端后,客户端获得综合投票配置信息。由于综合投票配置信息包括投票状态信息、当前票数信息以及投票选项信息。因此,当投票状态信息显示的当前的投票状态为投票进行中时,客户端即可根据投票选项信息提供的投票选项进行投票,并且当客户端确定投票后,需要向服务器发送投票请求。关于客户端向服务器发送投票请求的方式,本发明实施例不作具体限定。具体实施时,投票***可以在对应的投票网页上设置投票选项,客户端在显示投票选项后,通过检测投票选项被点击的操作来触发向服务器发送投票请求。
406:服务器接收客户端发送的投票请求,并从预设的多个投票处理节点中选择与用户标识匹配的目标投票处理节点,并将投票请求转发给目标投票处理节点,其中,投票请求携带用户标识。
关于服务器接收客户端发送的投票请求的方式,本发明实施例不作具体限定。
需要说明的是,由于服务器之前已经对预设的多个投票处理节点进行分组,并设置每组投票处理节点与用户标识之间的对应关系。因此,服务在接收客户端的投票请求后,可以从预设的多个投票处理节点中选择与用户标识匹配的投票处理节点作为目标投票处理节点来为该请求的客户端提供投票服务。其中,服务器从预设的多个投票处理节点中选择与用户标识匹配的投票处理节点作为目标投票处理节点的方式,包括但不限于通过以下方式来实现:
服务器根据设置的每组投票处理节点与用户标识之间的对应关系确定用户标识对应的投票处理节点所在分组,并在确定的分组中选择一个与用户标识匹配的投票处理节点作为目标投票处理节点。
当然,服务器还可以采用其他方式从预设的多个投票处理节点中选择与用户标识匹配的投票处理节点作为目标投票处理节点,本发明实施例对此不作具体限定。
407:目标投票处理节点接收服务器转发的投票请求,根据该投票请求为客户端提供投票服务。
服务器将投票请求转发给目标投票处理节点后,目标投票处理节点接收服务器转发的投票请求。关于服务器将投票请求转发给目标投票处理节点以及目标投票处理节点接收服务器转发的投票请求的方式,本发明实施例不作具体限定。
其中,目标投票处理节点根据投票请求为客户端提供投票服务,包括:
目标投票处理节点根据投票状态信息为客户端提供投票选项信息;在客户端获取到用户从投票选项信息中选择的一个投票对象得到选票信息后,将该选票信息发送给目标投票处理节点。目标投票处理节点接收并缓存客户端发送的选票信息;目标投票处理节点聚合预设时间内缓存的不同客户端选择的相同投票对象的选票信息,并处理聚合后的选票信息,得到投票配置信息。
需要说明的是,在本发明实施例中,目标投票处理节点接收并缓存客户端从投票选项信息中选择投票对象并发送的选票信息后,并不直接将客户端选择的选票信息累加到本地的当前票数信息上,而是先将本次获得的选票信息缓存在投票处理节点内部,然后定时检查最近一段时间内是否有其它类似的操作。如果在该时间段内,又有一个或多个客户端选择了该投票对象,此时,目标投票处理节点将多个客户端选择的同一投票对象的选票信息进行聚合后,将聚合后的选票信息对应的票数累加到本地的当前票数信息中。关于目标投票处理节点实现聚合操作的方式,可以有很多种。例如,可以在投票处理节点内部设置定时器,并使用该定时器定时扫描缓存的选票信息,当定时器到达计时时间时,自动将该段时间缓存的选票信息进行聚合,并将聚合后的选票信息写入数据库。
为了便于对上述目标投票处理节点聚合预设时间内不同客户端选择的相同投票对象的选票信息的过程进行解释说明,下面将举例进行说明。
例如,用户A和用户B,在定时器的同一定时时间内给同一个投票对象投了1票,那么目标投票处理节点不会单独将该增加的1票分别写入数据库,而是将这两次投票操作聚合成一次操作,将聚合后的两次投票操作的选票信息写入数据库,即此时数据库中记录的投票对象的选票增加了2票。
通过聚合操作,在投票用户数量多、请求量大的情况下,目标投票处理节点将众多投票请求聚合成一次等价的操作,从而使该投票***支持高并发的情况,避免了参与投票的客户端众多时,投票处理节点因到达瓶颈状态而导致投票***出现故障的风险。
另外,目标投票处理节点处理聚合后的选票信息,得到投票配置信息之后,还包括:将得到的投票配置信息同步至主投票处理节点,使主投票处理节点可以定时根据各个投票处理节点同步的投票配置信息更新综合投票配置信息。
通过上述步骤,客户端即可通过目标投票处理节点提供的投票服务进行投票操作。然而,如果当前投票***中正在为客户端提供投票服务的目标投票处理节点出现故障后,该目标投票处理节点则不能正常为客户端提供投票服务。为了保证目标投票处理节点出现故障后,不影响用户的投票操作,本发明实施例还提供了针对目标投票处理节点出现故障时的解决办法,具体详见下述步骤408。
408:如果目标投票处理节点出现故障,则服务器屏蔽目标投票处理节点,并分配多个投票处理节点中除目标投票处理节点之外的一个或多个投票处理节点处理目标投票处理节点当前处理的投票数据。
为了保证在目标投票处理节点出现故障时,投票***仍然能够处理客户端的投票请求,在本发明实施例中,如果目标投票处理节点出现故障,则服务器屏蔽目标投票处理节点,并分配多个投票处理节点中除目标投票处理节点之外的一个或多个投票处理节点处理目标投票处理节点当前处理的投票数据。关于服务器屏蔽目标投票处理节点的方式,本发明实施例不作具体限定。另外,关于服务器分配多个投票处理节点中除目标投票处理节点之外的一个或多个投票处理节点处理目标投票处理节点当前处理的投票数据的方式,可以有很多种。例如,服务器可以在出现故障的目标投票处理节点所在的分组中选择一个或多个投票处理节点;当然,服务器也可以从其它分组中选择一个或多个投票处理节点,本发明实施例对此不作具体限定。
通过该步骤,当目标投票处理节点出现故障后,通过分配其它投票处理节点来处理目标投票处理节点当前正在处理的投票数据,使得投票数据不会因为某个投票处理节点故障而出错,增加了投票***的容灾性能的同时,不影响用户的投票操作。
409:目标投票处理节点接收服务器发送的切换命令,并根据切换命令切换为主投票处理节点。
该步骤为可选步骤。在本发明实施例中,投票***中的任何一个投票处理节点均可以切换为主投票处理节点,确保在当前的主投票处理节点故障时,可以由其他投票处理节点继续执行主投票处理节点的功能。由于主投票处理节点为全局唯一的投票处理节点,因此,为了切换为主投票处理节点的操作需要服务器授权,确保授权的主投票处理节点的全局唯一性。因此,目标投票处理节点在切换为主投票处理节点时,需要接收服务器发送的切换命令,并根据切换命令切换为主投票处理节点。
进一步地,目标投票处理节点在切换为主投票处理节点后,继续执行主投票处理节点执行的功能,即定时统计多个投票处理节点的投票配置信息获得综合投票配置信息,并将综合投票配置信息实时广播给各个客户端以及多个投票处理节点中的其它投票处理节点。
本发明实施例提供的方法,通过从预设的多个投票处理节点中选择与用户标识匹配的目标投票处理节点来为客户端提供投票服务,确保在实现互联网投票时,当同一时刻参与投票的客户端众多时,可以由多个投票处理节点来为客户端提供投票服务,提高***处理投票效率的同时,能够给用户带来良好的操作体验。
实施例三
本发明实施例提供了一种服务器,该服务器用于执行上述实施例一及实施例二中服务器执行的功能。参见图5,该服务器包括:
第一接收模块501,用于接收客户端发送的投票请求,投票请求携带用户标识;
选择模块502,用于从预设的多个投票处理节点中选择与用户标识匹配的目标投票处理节点;
转发模块503,用于将投票请求转发给目标投票处理节点,使目标投票处理节点为客户端提供投票服务。
优选地,参见图6,服务器,还包括:
第二接收模块504,用于接收客户端发送的投票配置信息获取请求;
获取模块505,用于根据投票配置信息获取请求获取综合投票配置信息,综合投票配置信息包括投票状态信息、当前票数信息以及投票选项信息;
发送模块506,用于将获取到的综合投票配置信息发送给客户端,使客户端根据投票选项信息确定是否进行投票,且如果确定进行投票,则发送投票请求。
优选地,参见图7,服务器,还包括:
分组模块507,用于对预先设置的多个投票处理节点进行分组,并设置每组投票处理节点与用户标识之间的对应关系;
选择模块502,用于根据设置的每组投票处理节点与用户标识之间的对应关系确定用户标识对应的投票处理节点所在分组,并在确定的分组中选择一个与用户标识匹配的投票处理节点作为目标投票处理节点。
优选地,选择模块502,还用于从多个投票处理节点中选择一个投票处理节点作为主投票处理节点,主投票处理节点用于定时统计其他投票处理节点的投票配置信息以获得综合投票配置信息后,将综合投票配置信息广播给各个客户端以及其它投票处理节点,投票配置信息包括每个投票处理节点的本地投票状态信息、本地当前票数信息以及本地投票选项信息;
获取模块505,用于根据投票配置信息获取请求从主投票处理节点获取综合投票配置信息,或者,在主投票处理节点将综合投票配置信息广播至每个投票处理节点后,从任意一个投票处理节点获取综合投票配置信息。
优选地,参见图8,服务器,还包括:
屏蔽模块508,用于当目标处理节点出现故障时,屏蔽目标投票处理节点;
分配模块509,用于分配多个投票处理节点中除目标投票处理节点之外的一个或多个投票处理节点处理目标投票处理节点当前处理的投票数据。
本发明实施例提供的服务器,通过从预设的多个投票处理节点中选择与用户标识匹配的目标投票处理节点来为客户端提供投票服务,确保在实现互联网投票时,当同一时刻参与投票的客户端众多时,可以由多个投票处理节点来为客户端提供投票服务,提高***处理投票效率的同时,能够给用户带来良好的操作体验。
实施例四
本发明实施例提供了一种投票处理节点,该投票处理节点用于执行上述实施例一和实施例二中目标投票处理节点的功能。参见图9,该投票处理节点包括:
第一接收模块901,用于接收服务器转发的投票请求,投票请求为客户端发送至服务器的请求,且投票请求携带匹配的用户标识;
投票服务模块902,用于根据投票请求为客户端提供投票服务。
优选地,参见图10,投票处理节点,还包括:
第二接收模块903,用于接收服务器转发的投票配置信息获取请求,投票配置信息获取请求由客户端发送至服务器;
获取模块904,用于根据投票配置信息获取请求获取综合投票配置信息,综合投票配置信息包括投票状态信息、当前票数信息以及投票选项信息;
发送模块905,用于将获取到的综合投票配置信息发送给服务器,使服务器将综合投票配置信息转发给客户端后,使客户端根据投票选项信息确定是否进行投票,且如果进行投票,则发送投票请求。
优选地,参见图11,投票服务模块902,包括:
提供投票选项单元9021,用于根据投票状态信息为客户端提供投票选项信息;
接收单元9022,用于接收客户端从投票选项信息中选择投票对象并发送的选票信息;
缓存单元9023,用于缓存客户端从投票选项信息中选择投票对象并发送的选票信息;
聚合单元9024,用于聚合预设时间内缓存的不同客户端选择的相同投票对象的选票信息;
处理单元9025,用于处理聚合后的选票信息,得到投票配置信息,投票配置信息包括本地投票状态信息、本地当前票数信息以及本地投票选项信息。
优选地,参见图12,投票处理节点,还包括:
同步模块906,用于同步投票配置信息至主投票处理节点,使主投票处理节点定时统计每个投票处理节点的投票配置信息得到综合投票配置信息,主投票处理节点为服务器授权的用于定时统计多个投票处理节点的投票配置信息的投票处理节点。
优选地,参见图13,投票处理节点,还包括:
第三接收模块907,用于接收服务器发送的切换命令;
切换模块908,用于根据切换命令切换为主投票处理节点;
统计模块909,用于在切换为主投票处理节点后,定时统计多个投票处理节点的投票配置信息获得综合投票配置信息;
广播模块910,用于将获得的综合投票配置信息广播给各个客户端以及多个投票处理节点中的其它投票处理节点。
本发明实施例提供的投票处理节点,通过从预设的多个投票处理节点中选择与用户标识匹配的目标投票处理节点来为客户端提供投票服务,确保在实现互联网投票时,当同一时刻参与投票的客户端众多时,可以由多个投票处理节点来为客户端提供投票服务,提高***处理投票效率的同时,能够给用户带来良好的操作体验。
实施例五
本发明实施例提供了一种实现互联网投票的***,参见图14,该***包括服务器1401和多个投票处理节点1402;
其中,服务器1401如上述实施例三提供的服务器,具体详见上述实施例三的内容,在此不再赘述;
多个投票处理节点中的每个投票处理节点1402如上述实施例四提供的投票处理节点,具体详见上述实施例四的内容,在此不再赘述;
其中,服务器可以从多个投票处理节点中选择一个投票处理节点作为主投票处理节点1403,该主投票处理节点用于定时统计其它投票处理节点的投票配置信息以获得综合投票配置信息后,将所述综合投票配置信息广播给各个客户端以及其它投票处理节点。
本发明实施例提供的***,通过服务器从预设的多个投票处理节点中选择与用户标识匹配的目标投票处理节点来为客户端提供投票服务,确保在实现互联网投票时,当同一时刻参与投票的客户端众多时,可以由多个投票处理节点来为客户端提供投票服务,提高***处理投票效率的同时,能够给用户带来良好的操作体验。
需要说明的是:上述实施例提供的服务器、投票处理节点在实现互联网投票时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的服务器、投票处理节点、实现互联网投票的***与实现互联网投票的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。