一种抗并发的数据处理方法、系统、装置及存储介质与流程

文档序号:16848779发布日期:2019-02-12 22:33阅读:175来源:国知局
一种抗并发的数据处理方法、系统、装置及存储介质与流程

本发明涉及数据处理领域,特别是涉及一种抗并发的数据处理方法、系统、装置及存储介质。



背景技术:

网络服务端的业务处理服务器在高峰繁忙时期会收到大量的数据访问请求,需要向web服务器读写大量的数据。现有的技术中,通常是一台web服务器连接一台nginx服务器,然后多台web-nginx服务器连接到同一个redis数据库进行数据读写。这种架构的瓶颈在于redis数据库的性能,当并发过大时,可能会导致redis数据库的访问出现卡顿甚至崩溃的问题。

名词解释

web:全称worldwideweb,即全球广域网,也称为万维网,它是一种基于超文本和http的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在internet上的一种网络服务,为浏览者在internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将internet上的信息节点组织成一个互为关联的网状结构。

nginx:一款轻量级的web服务器/反向代理服务器及电子邮件(imap/pop3)代理服务器,并在一个bsd-like协议下发行,其特点是占有内存少,并发能力强。

redis:是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型数据库,并提供多种语言的数据接口。

mongodb:一个基于分布式文件存储的数据库。

ketama:一种计算哈希值的算法。



技术实现要素:

为了解决上述的技术问题,本发明的目的是提供一种处理效率高的抗并发的数据处理方法、系统、装置及存储介质。

一方面,本发明实施例提供了一种抗并发的数据处理方法,包括以下步骤:

当接收到第一用户数据请求时,解析获得第一用户数据请求中的第一用户id;

采用哈希算法计算第一用户id在服务器环中对应的nginx服务器;

将第一用户数据请求发送到计算获得的nginx服务器,使得该nginx服务器将第一用户数据请求发送到其连接的redis数据库进行处理;

其中,所述服务器环包括有多个nginx服务器,各所述nginx服务器均分别唯一连接有一redis数据库,且每个nginx服务器及其连接的redis数据库构成一web服务器。

进一步,所述服务器环通过以下方式生成:

分别根据每个nginx服务器的ip,通过一致性哈希算法计算每个nginx服务器的第一哈希值后,根据计算的第一哈希值将多个nginx服务器连接成一个服务器环。

进一步,所述采用哈希算法计算第一用户id在服务器环中对应的nginx服务器这一步骤,其具体为:

采用哈希算法计算第一用户id对应的第二哈希值后,根据预设的映射规则,在服务器环中查找获得第二哈希值对应的nginx服务器。

进一步,还包括以下步骤:

当检测到服务器环的负载过高时,将新接收到的第二用户数据请求缓存至mongodb中,并为服务器环新增一nginx服务器;其中,该新增的nginx服务器唯一连接有一redis数据库;

解析获得第二用户数据请求中的第二用户id,并将第二用户id与新增的nginx服务器建立映射关系,以使得新增的nginx服务器从mongodb读取第二用户数据请求,并发送到其连接的redis数据库进行处理。

进一步,所述服务器环的负载过高是指接收到的总的用户数据请求超过服务器环的数据处理能力。

进一步,所述为服务器环新增一nginx服务器的步骤,具体为:

发出请求新增nginx服务器的连接请求,并在该连接请求被同意后,接收对该连接请求的响应数据;

对接收的响应数据进行解析,获得其中的nginx服务器的ip,进而根据该nginx服务器的ip,通过一致性哈希算法计算该nginx服务器的第一哈希值;

根据该nginx服务器的第一哈希值,将该nginx服务器加入到服务器环中。

进一步,所述采用哈希算法计算第一用户id在服务器环中对应的nginx服务器这一步骤中,还包括以下步骤:

将第一用户id与服务器环中对应的nginx服务器建立映射关系,以使得该第一用户id发送的所有数据请求均由其在服务器环中对应的nginx服务器处理。

另一方面,本发明实施例提供了一种抗并发的数据处理系统,包括业务服务器和多个web服务器,各所述web服务器均分别包括一nginx服务器,所述业务服务器分别与各nginx服务器连接,各所述nginx服务器唯一连接有一redis数据库,多个nginx服务器构成一服务器环;

所述业务服务器用于:

当接收到第一用户数据请求时,解析获得第一用户数据请求中的第一用户id;

采用哈希算法计算第一用户id在服务器环中对应的nginx服务器;

将第一用户数据请求发送到计算获得的nginx服务器,使得该nginx服务器将第一用户数据请求发送到其连接的redis数据库进行处理。

另一方面,本发明实施例还提供了一种抗并发的数据处理装置,包括:

解析模块,用于当接收到第一用户数据请求时,解析获得第一用户数据请求中的第一用户id;

计算模块,用于采用哈希算法计算第一用户id在服务器环中对应的nginx服务器;

处理模块,用于将第一用户数据请求发送到计算获得的nginx服务器,使得该nginx服务器将第一用户数据请求发送到其连接的redis数据库进行处理;

其中,所述服务器环包括有多个nginx服务器,各所述nginx服务器均分别唯一连接有一redis数据库,且每个nginx服务器及其连接的redis数据库构成一web服务器。

另一方面,本发明实施例还提供了一种存储介质,其存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的一种抗并发的数据处理方法。

本发明实施例所构建的服务器环包括多个nginx服务器,且每个nginx服务器分别唯一连接有一redis数据库,在接收到用户数据请求时,解析获得用户数据请求中的用户id,从而采用哈希算法计算该用户id在服务器环中对应的nginx服务器后,将用户数据请求发送到计算获得的nginx服务器连接的redis数据库进行处理,从而在接收到大量用户数据请求的并发请求时,本实施例只要计算获得各用户数据请求对应的nginx服务器,从而将大量用户数据请求分发到对应的nginx服务器连接的redis数据库进行处理,可以避免并发数据访问导致的卡顿或者崩溃的问题,可以有效地对并发数据进行处理,且处理效率高。

附图说明

下面结合附图和实施例对本发明作进一步说明。

图1是本发明具体实施例的一种抗并发的数据处理方法的流程图;

图2是本发明具体实施例的一种抗并发的数据处理系统的电子框图;

图3是本发明具体实施例的一种抗并发的数据处理装置的电子框图。

具体实施方式

对于本发明实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。

方法实施例

参照图1,本实施例提供了一种抗并发的数据处理方法,包括以下步骤:

s1、当接收到第一用户数据请求时,解析获得第一用户数据请求中的第一用户id;

s2、采用哈希算法计算第一用户id在服务器环中对应的nginx服务器;

s3、将第一用户数据请求发送到计算获得的nginx服务器,使得该nginx服务器将第一用户数据请求发送到其连接的redis数据库进行处理;

其中,所述服务器环包括有多个nginx服务器,各所述nginx服务器均分别唯一连接有一redis数据库,且每个nginx服务器及其连接的redis数据库构成一web服务器。

本实施例中的用户数据请求,指用户发出的任意数据请求,例如查询数据访问请求,或者积分数据请求,例如具体游戏或者应用程序中的钻石、金币、种子等的数据请求。

本实施例中的“第一”、“第二”仅用于进行同一名词的区分,不具有特殊含义。

本实施例中,所构建的服务器环包括多个nginx服务器,且每个nginx服务器分别唯一连接有一redis数据库,在接收到用户数据请求时,解析获得用户数据请求中的用户id,从而采用哈希算法计算该用户id在服务器环中对应的nginx服务器后,将用户数据请求发送到计算获得的nginx服务器连接的redis数据库进行处理,从而在接收到大量用户数据请求的并发请求时,本实施例只要计算获得各用户数据请求对应的nginx服务器,从而将大量用户数据请求分发到对应的nginx服务器连接的redis数据库进行处理,可以避免并发数据访问导致的卡顿或者崩溃的问题,本方法可以有效地对并发数据进行处理,且处理效率高。

进一步作为优选的实施方式,所述服务器环通过以下方式生成:

分别根据每个nginx服务器的ip,通过一致性哈希算法计算每个nginx服务器的第一哈希值后,根据计算的第一哈希值将多个nginx服务器连接成一个服务器环。

基于每个nginx服务器的ip,计算每个nginx服务器的第一哈希值,从而可以根据计算获得的第一哈希值将多个nginx服务器连接成一个服务器环,例如按照第一哈希值的升序或者降序方式进行连接,或者按照设定的其它排序方式进行连接等。从而后续应用中,可以根据nginx服务器的哈希值,选择具体的nginx服务器来处理同一个用户的数据请求,保证数据处理过程的一致性。

具体的,本实施例的一致性哈希算法可以采用现有技术的ketama哈希算法等,本实施例不做具体限定。

进一步作为优选的实施方式,所述步骤s2,其具体为:

采用哈希算法计算第一用户id对应的第二哈希值后,根据预设的映射规则,在服务器环中查找获得第二哈希值对应的nginx服务器。

这里,预设的映射规则是指用户id的哈希值与nginx服务器ip的哈希值之间的映射关系,可以根据实际应用情况进行任意设定,通过设定映射关系后,在接收到用户数据请求时,根据用户id,查找获得对应的nginx服务器来对用户数据请求进行处理,可以保证,同一个用户id的用户数据请求均发送到同一台nginx服务器进行处理,保证数据的一致性。

进一步作为优选的实施方式,还包括以下步骤:

s4、当检测到服务器环的负载过高时,将新接收到的第二用户数据请求缓存至mongodb中,并为服务器环新增一nginx服务器;其中,该新增的nginx服务器唯一连接有一redis数据库;

s5、解析获得第二用户数据请求中的第二用户id,并将第二用户id与新增的nginx服务器建立映射关系,以使得新增的nginx服务器从mongodb读取第二用户数据请求,并发送到其连接的redis数据库进行处理。

当服务器环的负载过高时,需要新增nginx服务器,采用新增的nginx服务器对新接收到的用户数据请求进行处理,避免原服务器环的过载导致的访问卡顿或者崩溃的问题。

进一步作为优选的实施方式,所述服务器环的负载过高是指接收到的总的用户数据请求超过服务器环的数据处理能力。

进一步作为优选的实施方式,所述步骤s4中所述为服务器环新增一nginx服务器的步骤,具体为:

发出请求新增nginx服务器的连接请求,并在该连接请求被同意后,接收对该连接请求的响应数据;

对接收的响应数据进行解析,获得其中的nginx服务器的ip,进而根据该nginx服务器的ip,通过一致性哈希算法计算该nginx服务器的第一哈希值;

根据该nginx服务器的第一哈希值,将该nginx服务器加入到服务器环中。

其中,发出请求新增nginx服务器的连接请求,是指向空闲的nginx服务器发出的连接请求,从而空闲的nginx服务器同意连接时,会发送对应的包括nginx服务器的ip的响应数据过来,从而可以根据该nginx服务器的ip,计算第一哈希值后,将该nginx服务器连接到服务器环中。

进一步作为优选的实施方式,所述步骤s2中,还包括以下步骤:

将第一用户id与服务器环中对应的nginx服务器建立映射关系,以使得该第一用户id发送的所有数据请求均由其在服务器环中对应的nginx服务器处理。

将用户id与计算获得的对应的nginx服务器建立映射关系,可以保证,后续处理过程中,同一个用户id的用户数据请求均发送到同一台nginx服务器进行处理,保证数据的一致性。

系统实施例

参照图2,本实施例提供了一种抗并发的数据处理系统,包括业务服务器和多个web服务器,各所述web服务器均分别包括一nginx服务器,所述业务服务器分别与各nginx服务器连接,各所述nginx服务器唯一连接有一redis数据库,多个nginx服务器构成一服务器环;

所述业务服务器用于:

当接收到第一用户数据请求时,解析获得第一用户数据请求中的第一用户id;

采用哈希算法计算第一用户id在服务器环中对应的nginx服务器;

将第一用户数据请求发送到计算获得的nginx服务器,使得该nginx服务器将第一用户数据请求发送到其连接的redis数据库进行处理。

本实施例中,多个nginx服务器构成一服务器环,且每个nginx服务器分别唯一连接有一redis数据库,在接收到用户数据请求时,解析获得用户数据请求中的用户id,从而采用哈希算法计算该用户id在服务器环中对应的nginx服务器后,将用户数据请求发送到计算获得的nginx服务器连接的redis数据库进行处理,从而在接收到大量用户数据请求的并发请求时,本实施例只要计算获得各用户数据请求对应的nginx服务器,从而将大量用户数据请求分发到对应的nginx服务器连接的redis数据库进行处理,可以避免并发数据访问导致的卡顿或者崩溃的问题,本系统可以有效地对并发数据进行处理,且处理效率高。

具体的,服务器环的构建方式、业务服务器的详细功能描述与方法实施例中一致,本实施例不再赘述。

本实施例的抗并发的数据处理系统,可执行本发明方法实施例所提供的一种抗并发的数据处理方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。

装置实施例

参照图3,本实施例提供了一种抗并发的数据处理装置,包括:

解析模块,用于当接收到第一用户数据请求时,解析获得第一用户数据请求中的第一用户id;

计算模块,用于采用哈希算法计算第一用户id在服务器环中对应的nginx服务器;

处理模块,用于将第一用户数据请求发送到计算获得的nginx服务器,使得该nginx服务器将第一用户数据请求发送到其连接的redis数据库进行处理;

其中,所述服务器环包括有多个nginx服务器,各所述nginx服务器均分别唯一连接有一redis数据库,且每个nginx服务器及其连接的redis数据库构成一web服务器。

本实施例中,所构建的服务器环包括多个nginx服务器,且每个nginx服务器分别唯一连接有一redis数据库,在接收到用户数据请求时,解析获得用户数据请求中的用户id,从而采用哈希算法计算该用户id在服务器环中对应的nginx服务器后,将用户数据请求发送到计算获得的nginx服务器连接的redis数据库进行处理,从而在接收到大量用户数据请求的并发请求时,本实施例只要计算获得各用户数据请求对应的nginx服务器,从而将大量用户数据请求分发到对应的nginx服务器连接的redis数据库进行处理,可以避免并发数据访问导致的卡顿或者崩溃的问题,本装置可以有效地对并发数据进行处理,且处理效率高。

本实施例的抗并发的数据处理装置,可执行本发明方法实施例所提供的一种抗并发的数据处理方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。

另外,本发明实施例还提供了一种存储介质,其存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的一种抗并发的数据处理方法,可以避免并发数据访问导致的卡顿或者崩溃的问题,可以有效地对并发数据进行处理,且处理效率高。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变型或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1