数据处理方法、装置、电子设备、存储介质及系统
文献发布时间:2023-06-19 09:33:52
技术领域
本发明涉及数据处理技术领域,具体涉及数据处理方法、装置、电子设备、存储介质及系统。
背景技术
对于服务器程序来说有个基本假设,即服务器是基于状态请求,还是基于无状态请求。根据这个假设,可以将服务器划分为状态服务器和无状态服务器。
状态服务器一般需要保存请求的相关信息,每个请求可以默认地使用以前的请求信息,状态服务器并不要求每次客户请求都携带额外的状态数据;无状态服务器则不保存客户请求的数据,其处理的客户信息必须全部来自于请求所携带的信息以及其他服务器自身所保存的、并且可以被所有请求所使用的公共信息。其中,常见的无状态的服务器就是WEB服务器。
然而,随着容器等虚拟化技术的普及,无状态服务器也可以响应状态的请求,它在处理状态请求的过程中可以向其它的状态服务器进行数据存储或数据查询,这样解耦的状态服务器和无状态服务器通过合作就可以灵活地响应和处理各种的用户请求了。具体地,无状态服务器与网关连接,状态服务器与无状态服务器连接,当无状态服务器接收到网关发送的用户请求之后,基于用户请求可以向与其连接的状态服务器进行数据存储或数据查询。
在上述的组合服务器方案下,如果用户的状态请求在经过网关后随机的发给多个无状态服务器,无状态服务器再基于用户请求将其转发给不同的状态服务器进行处理,这就会导致状态服务器处理状态数据的次序与请求的次序不一致,从而导致数据处理的准确性较低。
发明内容
有鉴于此,本发明实施例提供了一种数据处理方法、装置、电子设备、存储介质及系统,以解决数据处理的准确性较低的问题。
根据第一方面,本发明实施例提供了一种数据处理方法,所述方法包括:
接收第一请求信息;
基于所述第一请求信息确定请求状态,所述请求状态包括状态请求;
当所述第一请求信息对应的请求状态为状态请求时,对所述第一请求信息形成当前时刻的时间戳,以得到第二请求信息;
将所述第二请求信息发送至第一预设无状态服务器,所述第一预设无状态服务器用于将所述第二请求信息发送至预设状态服务器,以使得所述预设状态服务器基于所述时间戳处理所述第二请求信息。
本发明实施例提供的数据处理方法,在确定出第一请求信息的请求状态为状态请求时,为第一请求信息形成当前时刻的时间戳以得到第二请求信息,再将携带有时间戳的第二请求信息发送给第一预设无状态服务器进行处理,第一预设无状态服务器用于将第二请求信息发送至预设状态服务器,使得预设状态服务器基于时间戳进行处理,能够保证在面对无状态服务器集群时用户请求也可以得到及时和正确的响应,使得对请求信息的处理是按照请求次序进行处理的,从而提高了数据处理的准确性。
结合第一方面,在第一方面第一实施方式中,所述将所述第二请求信息发送至预设无状态服务器,包括:
将所述第一请求信息对应的时间戳存储至预设位置;
将所述第二请求信息发送至所述预设无状态服务器。
本发明实施例提供的数据处理方法,将第一请求信息对应的时间戳存储至预设位置,后续状态服务器就可以利用存储的时间戳与接收到的第二请求信息中的时间戳进行对比,以避免出现处理在预设位置不存在时间戳的请求信息,从而保证了数据的安全性。
结合第一方面第一实施方式,在第一方面第二实施方式中,所述将所述第一请求信息对应的时间戳存储至预设位置,还包括:
确定所述第一请求信息的处理状态;
将所述处理状态与所述第一请求信息对应的时间戳存储至所述预设位置。
本发明实施例提供的数据处理方法,在预设位置还存储有第一请求信息的处理状态,通过对第一请求信息的处理状态进行标记,从而能够准确地确定出区分出已处理和未出的请求信息,提高了请求信息处理的效率。
结合第一方面,或第一方面第一实施方式或第二实施方式,在第一方面第三实施方式中,所述方法还包括:
当所述第一请求信息对应的请求状态为无状态请求时,将所述第一请求信息发送至第二预设无状态服务器进行处理。
本发明实施例提供的数据处理方法,在第一请求信息的请求状态为无状态请求时,直接将其发送给第二预设无状态服务器进行处理,而不需要为其形成相应的时间戳,提高了信息请求处理的效率。
根据第二方面,本发明实施例还提供了一种数据处理方法,所述方法包括:
接收至少一个无状态服务器发送的至少一个第二请求信息;
提取所述第二请求信息中的时间戳;
基于提取出的时间戳对所述第二请求信息进行处理。
本发明实施例提供的数据处理方法,利用第二请求信息中的时间戳对第二请求信息进行处理,能够保证在面对无状态服务器集群时用户请求也可以得到及时和正确的响应,使得对请求信息的处理是按照请求次序进行处理的,从而提高了数据处理的准确性。
结合第二方面,在第二方面第一实施方式中,所述基于提取出的时间戳对所述第二请求信息进行处理,包括:
利用提取出的时间戳在预设位置查询是否存在相同的时间戳,所述预设位置用于存储请求信息的时间戳;
当所述预设位置不存在相同的时间戳时,丢弃所述第二请求信息并将处理结果反馈给对应的无状态服务器。
本发明实施例提供的数据处理方法,在预设位置不存在与提取出的时间戳相同的时间戳时,表示此时的第二请求信息可能是伪造的将其丢弃,保证了数据处理的安全性。
结合第二方面第一实施方式,在第二方面第二实施方式中,所述基于提取出的时间戳对所述第二请求信息进行处理,还包括:
当所述预设位置存在相同的时间戳时,将提取出的时间戳与当前时刻进行比较;
当提取出的时间戳与所述当前时刻的时间差大于时间阈值时,丢弃所述第二请求信息并将处理结果反馈给对应的无状态服务器。
本发明实施例提供的数据处理方法,时间阈值用于表示无状态服务器响应用户请求允许的最大时间,将第二请求信息中的时间戳与当前时刻进行比较,在时间差大于时间阈值时,将第二请求信息丢弃以保证数据处理的实时性。
结合第二方面第二实施方式,在第二方面第三实施方式中,所述基于提取出的时间戳对所述第二请求信息进行处理,还包括:
当提取出的时间戳与所述当前时刻的时间差小于或等于时间阈值时,对所述第二请求信息进行处理,并删除所述预设位置中对应的请求信息。
本发明实施例提供的数据处理方法,在提取出的时间戳与当前时刻的时间差小于或等于时间阈值时,直接对第二请求信息进行处理,并删除预设位置中对应的请求信息,以保证预设位置处请求信息的及时更新。
结合第二方面第二实施方式,在第二方面第四实施方式中,所述预设位置还用于存储请求信息的处理状态,所述基于提取出的时间戳对所述第二请求信息进行处理,还包括:
当提取出的时间戳与所述当前时刻的时间差小于或等于时间阈值时,判断所述预设位置中在提取出的时间戳之前是否存在处理状态为未处理的请求信息;
当所述预设位置中在提取出的时间戳之前存在处理状态为未处理的请求信息时,将所述第二请求信息加入交互请求池;
提取所述交互请求池中最早时间戳的第二请求信息,以得到第三请求信息;
基于所述第三请求信息的时间戳对所述第三请求信息进行处理。
本发明实施例提供的数据处理方法,利用交互请求池对请求信息进行处理,可以提高数据处理的效率。
结合第二方面第四实施方式,在第二方面第五实施方式中,所述基于提取出的时间戳对所述第二请求信息进行处理,还包括:
当所述预设位置中在提取出的时间戳之前不存在处理状态为未处理的请求信息时,对所述第二请求信息进行处理并在所述预设位置将对应的请求信息的处理状态标记为已处理。
本发明实施例提供的数据处理方法,通过在预设位置存储相应请求信息的处理状态,在处理完成之后对处理状态进行更新,以便于区分出未处理以及已处理的信息请求,从而能够保证未处理请求信息的及时处理。
根据第三方面,本发明实施例还提供了一种数据处理装置,所述装置包括:
第一接收模块,用于接收第一请求信息;
确定模块,用于基于所述第一请求信息确定请求状态,所述请求状态包括状态请求;
时间戳模块,用于当所述第一请求信息对应的请求状态为状态请求时,对所述第一请求信息形成当前时刻的时间戳,以得到第二请求信息;
发送模块,用于将所述第二请求信息发送至第一预设无状态服务器,所述第一预设无状态服务器用于将所述第二请求信息发送至预设状态服务器,以使得所述预设状态服务器基于所述时间戳处理所述第二请求信息。
本发明实施例提供的数据处理装置,在确定出第一请求信息的请求状态为状态请求时,为第一请求信息形成当前时刻的时间戳以得到第二请求信息,再将携带有时间戳的第二请求信息发送给第一预设无状态服务器进行处理,第一预设无状态服务器用于将第二请求信息发送至预设状态服务器,使得预设状态服务器基于时间戳进行处理,能够保证在面对无状态服务器集群时用户请求也可以得到及时和正确的响应,使得对请求信息的处理是按照请求次序进行处理的,从而提高了数据处理的准确性。
根据第四方面,本发明实施例还提供了一种数据处理装置,所述装置包括:
第二接收模块,用于接收至少一个无状态服务器发送的至少一个第二请求信息;
提取模块,用于提取所述第二请求信息中的时间戳;
处理模块,用于基于提取出的时间戳对所述第二请求信息进行处理。
本发明实施例提供的数据处理装置,利用第二请求信息中的时间戳对第二请求信息进行处理,能够保证在面对无状态服务器集群时用户请求也可以得到及时和正确的响应,使得对请求信息的处理是按照请求次序进行处理的,从而提高了数据处理的准确性。
根据第五方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或者第一方面的任意一种实施方式,或执行第二方面或者第二方面的任意一种实施方式中所述的数据处理方法。
根据第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种实施方式,或执行第二方面或者第二方面的任意一种实施方式中所述的数据处理方法。
根据第七方面,本发明实施例还提供了一种数据处理系统,包括:
至少一个网关,用于执行本发明第一方面,或第一方面的任意一种实施方式中所述的数据处理方法;
至少一个无状态服务器,与所述至少一个网关连接;
至少一个状态服务器,与所述至少一个无状态服务器连接,所述至少一个状态服务器用于执行本发明第二方面,或第二方面的任意一种实施方式中所述的数据处理方法。
本发明实施例提供的数据处理系统,通过解耦状态服务器和无状态服务器,并结合网关进行整体的数据处理,同时给用户的请求信息添加相应的时间戳,使得预设状态服务器基于时间戳进行处理,能够保证在面对无状态服务器集群时用户请求也可以得到及时和正确的响应,使得对请求信息的处理是按照请求次序进行处理的,从而提高了数据处理的准确性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的数据处理系统的结构框图;
图2是根据本发明实施例的数据处理方法的流程图;
图3是根据本发明实施例的数据处理方法的流程图;
图4是根据本发明实施例的数据处理方法的流程图;
图5是根据本发明实施例的数据处理方法的流程图;
图6是根据本发明实施例的数据处理方法的流程图;
图7是根据本发明实施例的数据处理系统的示意图;
图8是根据本发明实施例的数据处理装置的结构框图;
图9是根据本发明实施例的数据处理装置的结构框图;
图10是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的一种数据处理系统,包括至少一个网关、至少一个无状态服务器以及至少一个状态服务器。其中,网关与无状态服务器连接,无状态服务与状态服务器连接。至于数据处理系统中所设置的网关、无状态服务器以及状态服务器的具体数量可以根据实际情况进行相应的设置,在此并不做任何限制。
图1示出了数据处理系统的一种可选实施方式,在该数据处理系统中设置有一个网关、N个无状态服务器以及一个状态服务器。其中,网关用于接收用户发送的第一请求信息,并依据第一请求信息的请求状态确定是否需要为其加上时间戳。当第一请求信息的请求状态为状态请求时,网关就需要为该第一请求信息加上时间戳。网关在对第一请求信息进行相应的处理之后,形成第二请求信息并将其发送至对应的无状态服务器。
无状态服务器在接收到第二请求信息之后,先确定其请求状态是否为状态请求,当其请求状态为状态请求时,将其发送至相应的状态请求服务器中进行处理。状态请求服务器在接收到第二请求信息之后,提取出第二请求信息中的时间戳,利用提取出的时间戳对其进行处理。
例如,状态服务器可以将提取出的时间戳与当前时刻进行比较,确定提取出的时间戳与当前时刻的时间差是否超出时间阈值,当超出时间阈值时,就将该第二请求信息丢弃;状态服务器还可以基于时间戳的先后顺序对第二请求信息进行处理等等。具体将在下文中进行详细描述。
本实施例提供的数据处理系统,通过解耦状态服务器和无状态服务器,并结合网关进行整体的数据处理,同时给用户的请求信息添加相应的时间戳,使得预设状态服务器基于时间戳进行处理,能够保证在面对无状态服务器集群时用户请求也可以得到及时和正确的响应,使得对请求信息的处理是按照请求次序进行处理的,从而提高了数据处理的准确性。
根据本发明实施例,提供了一种数据处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种数据处理方法,可用于上述的网关等,图2是根据本发明实施例的数据处理方法的流程图,如图2所示,该流程包括如下步骤:
S11,接收第一请求信息。
用户依据各自的需求向对应的网关发送第一请求信息,相应地,网关就可以接收到第一请求信息。在该第一请求信息中可以包括所要请求的数据,或数据的处理等等,在此对第一请求信息的具体内容并不做任何限制。
S12,基于第一请求信息确定请求状态。
其中,所述请求状态包括状态请求。
网关在接收到第一请求信息,可以基于第一请求信息确定其请求状态。例如,网关可以通过它是否需要访问或操作状态数据信息,例如,数据库、文件等等,即通过是否需要与状态服务器进行通信,确定第一请求信息的请求状态。其中,所述的状态请求为需要与状态服务器进行通信的请求。
S13,判断第一请求信息对应的请求状态是否为状态请求。
网关在确定出第一请求信息对应的请求状态之后,判断其是否为状态请求。当第一请求信息对应的请求状态为状态请求时,执行S14;否则,执行其他操作。其中,所述的其他操作为直接将第一请求信息转发至第二预设无状态服务器进行处理,也可以先将第二请求信息进行格式转换后再进行发送等等。
S14,对第一请求信息形成当前时刻的时间戳,以得到第二请求信息。
网关在确定出第一请求信息对应的请求状态为状态请求时,网关对第一请求信息形成当前时刻的时间戳,并将该时间戳添加到用户的请求网络报文中,得到第二请求信息。其中,第二请求信息可以是依据无状态服务器与状态服务器之间的通信协议确定的,对其具体形式并不做任何限定,只需保证第二请求信息中携带的信息包括有时间戳以及用户请求内容等等。
S15,将第二请求信息发送至第一预设无状态服务器。
其中,所述第一预设无状态服务器用于将第二请求信息发送至预设状态服务器,以使得预设状态服务器基于时间戳处理第二请求信息。
网关在形成第二请求信息之后,从数据处理系统中的所有无状态服务器中确定出第一预设无状态服务器。其中,对于第一预设无状态服务器的确定可以是依据负载均衡原则确定的,也可以是依据其他方式确定的,在此对第一预设无状态服务器的具体确定方式并不做任何限定,只需保证能够确定出第一预设无状态服务器即可。
网关将第二请求信息发送给第一预设无状态服务器,第一预设无状态服务器将第二请求信息发送至预设状态服务器。其中,预设状态服务器可以是依据请求信息确定的,也可以是依据负载均衡原则确定的,或是其他方式确定的等等,在此对预设状态服务器的具体确定方式并不做任何限定。
预设状态服务器在接收到第二请求信息之后,依据第二请求信息中的时间戳对第二请求信息进行相应的处理,具体将在下文中对其进行详细描述。
本实施例提供的数据处理方法,在确定出第一请求信息的请求状态为状态请求时,为第一请求信息形成当前时刻的时间戳以得到第二请求信息,再将携带有时间戳的第二请求信息发送给第一预设无状态服务器进行处理,第一预设无状态服务器用于将第二请求信息发送至预设状态服务器,使得预设状态服务器基于时间戳进行处理,能够保证在面对无状态服务器集群时用户请求也可以得到及时和正确的响应,使得对请求信息的处理是按照请求次序进行处理的,从而提高了数据处理的准确性。
在本实施例中提供了一种数据处理方法,可用于上述的网关等,图3是根据本发明实施例的数据处理方法的流程图,如图3所示,该流程包括如下步骤:
S21,接收第一请求信息。
详细请参见图2所示实施例的S11,在此不再赘述。
S22,基于第一请求信息确定请求状态。
其中,所述请求状态包括状态请求以及无状态请求。
详细请参见图2所示实施例的S12,在此不再赘述。
S23,判断第一请求信息对应的请求状态是否为状态请求。
当第一请求信息对应的请求状态为状态请求时,执行S24;否则,执行S25。
S24,对第一请求信息形成当前时刻的时间戳,以得到第二请求信息。
详细请参见图2所示实施例的S14,在此不再赘述。
S25,将第一请求信息发送至第二预设无状态服务器进行处理。
当网关确定出第一请求信息的请求状态为无状态请求时,网关直接将第一请求信息发送至第二预设无状态服务器进行处理。其中,第二预设无状态服务器的确定方式与第一无状态服务器的确定方式类似,在此并不做任何限定。
第二预设无状态服务器在接收到第一请求信息之后,直接对其进行处理,并将结果反馈给网关,网关在接收到第二预设无状态服务器的反馈结果之后,可以将其反馈给用户。
在第一请求信息的请求状态为无状态请求时,直接将其发送给第二预设无状态服务器进行处理,而不需要为其形成相应的时间戳,提高了信息请求处理的效率。
S26,将第二请求信息发送至第一预设无状态服务器。
其中,所述第一预设无状态服务器用于将第二请求信息发送至预设状态服务器,以使得预设状态服务器基于时间戳处理第二请求信息。
具体地,上述S26包括如下步骤:
S261,将第一请求信息对应的时间戳存储至预设位置。
网关还用于将时间戳存储在预设位置,所述的预设位置可以是设置在某状态服务器、或无状态服务器或其他服务器上的数据库,或者为其他的存储形式,在此对预设位置并不做任何限定。
例如,可以在数据处理系统中还设置有一台用于存储该数据库的服务器,网关将与第一请求信息对应的时间戳存储在该服务器的数据库中。在数据库中可以利用各个第一请求信息的标识对各个时间戳进行区分,以确定时间戳与第一请求信息之间的对应关系。
其中,对时间戳进行存储的目的在于,后续状态服务器在接收到第二请求信息之后,可以将第二请求信息中的时间戳与预设位置中存储的时间戳进行比较,以确定在预设位置处是否有第二请求信息中的时间戳。当预设位置处没有第二请求信息中的时间戳时,则表示该第二请求信息可能是伪造的,或是其他原因形成的。因此,状态服务器就可以利用时间戳的比较,确定是否需要对第二请求信息进行处理,以保证数据处理的安全性。
S262,将第二请求信息发送至预设无状态服务器。
详细请参见图2所示实施例的S15,在此并不做任何限定。
本实施例提供的数据处理方法,将第一请求信息对应的时间戳存储至预设位置,后续状态服务器就可以利用存储的时间戳与接收到的第二请求信息中的时间戳进行对比,以避免出现处理在预设位置不存在时间戳的请求信息,从而保证了数据的安全性。
作为本实施例的一种可选实施方式,上述S25还可以包括如下步骤:
(1)确定第一请求信息的处理状态。
网关在确定出第一请求信息的请求状态为状态请求时,可以同时将第一请求信息的处理状态标记为未处理,或者其他标识,只需保证能够标记出第一请求信息的当前处理状态。
(2)将处理状态与第一请求信息对应的时间戳存储至预设位置。
网关在确定出第一请求信息的处理状态之后,将第一请求信息的处理状态以及对应的时间戳一起存储至预设位置处。
在预设位置还存储有第一请求信息的处理状态,通过对第一请求信息的处理状态进行标记,从而能够准确地确定出区分出已处理和未出的请求信息,提高了请求信息处理的效率。
根据本发明实施例,提供了一种数据处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种数据处理方法,可用于上述的状态服务器等,图4是根据本发明实施例的数据处理方法的流程图,如图4所示,该流程包括如下步骤:
S31,接收至少一个无状态服务器发送的至少一个第二请求信息。
状态服务器在实时接收各个无状态服务器发送的第二请求信息,可能在同一时刻状态服务器接收到至少一个第二请求信息,那么状态服务器就需要依次对第二请求信息进行处理。该步骤与图2所示实施例的S15,或图3所示实施例的S26对应,可以参见图2所示实施例的S15,或图3所示实施例的S26的相关描述。
S32,提取第二请求信息中的时间戳。
状态服务器在接收到至少一个第二请求信息之后,对第二请求信息进行解析,提取出各个第二请求信息中的时间戳。
S33,基于提取出的时间戳对第二请求信息进行处理。
状态服务器在提取出时间戳之后,可以依据时间戳的先后顺序依次对第二请求信息进行处理;也可以结合时间戳,确定第二请求信息是否需要处理等等。具体将在下文中对该步骤进行详细描述。
本实施例提供的数据处理方法,利用第二请求信息中的时间戳对第二请求信息进行处理,能够保证在面对无状态服务器集群时用户请求也可以得到及时和正确的响应,使得对请求信息的处理是按照请求次序进行处理的,从而提高了数据处理的准确性。
在本实施例中提供了一种数据处理方法,可用于上述的状态服务器等,图5是根据本发明实施例的数据处理方法的流程图,如图5所示,该流程包括如下步骤:
S41,接收至少一个无状态服务器发送的至少一个第二请求信息。
详细请参见图4所示实施例的S31,在此不再赘述。
S42,提取第二请求信息中的时间戳。
详细请参见图4所示实施例的S32,在此不再赘述。
S43,基于提取出的时间戳对第二请求信息进行处理。
具体地,上述S43包括如下步骤:
S431,利用提取出的时间戳在预设位置查询是否存在相同的时间戳。
其中,所述预设位置用于存储请求信息的时间戳。
如上文所述,预设位置处存储有与请求信息对应的时间戳。状态服务器在提取出第二请求信息中的时间戳之后,可以利用在预设位置处查询是否存在与该提取出的时间戳相同的时间戳。
当所述预设位置不存在相同的时间戳时,执行S432;否则,执行S433。
S432,丢弃第二请求信息并将处理结果反馈给对应的无状态服务器。
当状态服务器在预设位置处查询不到与提取出的时间戳相同的时间戳时,状态服务器就将该第二请求信息丢弃,并将处理结果反馈给发送该第二请求信息的无状态服务器。
S433,判断提取出的时间戳与当前时刻的时间差是否大于时间阈值。
当状态服务器在预设位置处查询不到与提取出的时间戳相同的时间戳时,状态服务器计算提取出的时间戳与当前时刻的时间差,判断该时间差是否大于时间阈值。其中,所述的时间阈值为无状态服务器响应用户请求允许的最大时间。当提取出的时间戳与所述当前时刻的时间差大于时间阈值时,执行S432,将该第二请求信息丢弃并将处理结果反馈给对应的无状态服务器;否则,执行S434。
S434,判断预设位置中在提取出的时间戳之前是否存在处理状态为未处理的请求信息。
当状态服务器确定出提取出的时间戳与当前时刻的时间差小于或等于时间阈值时,表示该第二请求信息是可以处理的。但是状态服务器还需要在预设位置处确定出在提取出的时间戳之前是否还存在未处理的请求信息。如上文所述,网关在将第一请求信息的时间戳存储在预设位置时,还将第一请求信息的处理状态标记为未处理。因此,状态服务器在对当前接收到的第二请求信息处理之前,还需要确定预设位置中是否具有在提取出的时间戳之前还未处理的请求信息,以保证数据的处理次序。
当预设位置中在提取出的时间戳之前存在处理状态为未处理的请求信息时,执行S435;否则,执行S438。
S435,将第二请求信息加入交互请求池。
当预设位置中在提取出的时间戳之前存在处理状态为未处理的请求信息时,状态服务器就将接收到的第二请求信息加入到交互请求池中等待处理。
S436,提取交互请求池中最早时间戳的第二请求信息,以得到第三请求信息。
状态服务器一方面在接收无状态服务器发送的第二请求信息,另一方面可以定时从交互请求池中选择具有最早时间戳的请求信息进行处理。其中,状态服务器在从交互请求池中提取出最早时间戳的第二请求信息,为了区分从无状态服务器中接收到的第二请求信息,在此将从交互请求池的提取出的请求信息称之为第三请求信息。
S437,基于第三请求信息的时间戳对第三请求信息进行处理。
状态服务器在得到第三请求信息之后,提取出第三请求信息中的时间戳,利用该时间戳对第三请求信息进行处理。其中,详细的处理过程请求参见上文S431-S438的相应描述。
状态服务器对从交互请求池中得到的第三请求信息的处理方式,与对从无状态服务器中接收到第二请求信息的处理方式相同。
S438,对第二请求信息进行处理并在预设位置将对应的请求信息的处理状态标记为已处理。
当预设位置中在提取出的时间戳之前不存在处理状态为未处理的请求信息时,状态服务器直接对第二请求信息进行处理,并在预设位置将对应的请求信息的处理状态标记为已处理。
对于预设位置对应的服务器而言,其会定时遍历预设位置,并及时删除已处理或超时未处理的信息。具体地,
若请求信息的处理状态为已处理,则将其直接删除;
若请求信息的处理状态为未处理,但是该请求信息的时间戳与当前时刻的时间差已经大于时间阈值,那么就将其删除;否则,予以保留。
在该实施例中,状态服务器只需要对第二请求信息以及第三请求信息进行处理,并修改预设位置处请求信息的处理状态;至于预设位置处请求信息的删除等操作就由预设位置的服务器进行处理,实现处理事项的合理分配。
本实施例提供的数据处理方法,在预设位置不存在与提取出的时间戳相同的时间戳时,表示此时的第二请求信息可能是伪造的将其丢弃,保证了数据处理的安全性;时间阈值用于表示无状态服务器响应用户请求允许的最大时间,将第二请求信息中的时间戳与当前时刻进行比较,在时间差大于时间阈值时,将第二请求信息丢弃以保证数据处理的实时性;利用交互请求池对请求信息进行处理,可以提高数据处理的效率;通过在预设位置存储相应请求信息的处理状态,在处理完成之后对处理状态进行更新,以便于区分出未处理以及已处理的信息请求,从而能够保证未处理请求信息的及时处理。
作为本实施例的一种可选实施方式,上述S434中当预设位置中在提取出的时间戳之前不存在处理状态为未处理的请求信息时,对第二请求信息进行处理,并删除预设位置中对应的请求信息。
在提取出的时间戳与当前时刻的时间差小于或等于时间阈值时,直接对第二请求信息进行处理,并删除预设位置中对应的请求信息,以保证预设位置处请求信息的及时更新。
图6示出了一种基于数据处理系统的数据处理方法,所述方法包括如下步骤:
S501,网关接收第一请求信息。详细请参见图3所示实施例的S21,在此不再赘述。
S502,网关基于第一请求信息确定请求状态。详细请参见图3所示实施例的S22,在此不再赘述。
S503,网关判断第一请求信息对应的请求状态是否为状态请求。当所述请求状态为状态请求时,执行S504;否则,执行S505。
S504,网关对第一请求信息形成当前时刻的时间戳,以得到第二请求信息。详细请参见图3所示实施例的S24,在此不再赘述。
S505,网关将第一请求信息发送至第二预设无状态服务器进行处理。详细请参见图3所示实施例的S25,在此不再赘述。
S506,网关将第二请求信息发送至第一预设无状态服务器。详细请参见图3所示实施例的S25,在此不再赘述。
S507,第一预设无状态服务器将第二请求信息发送至预设状态服务器。
S508,第二预设无状态服务器对第二请求信息进行处理。
S509,预设状态服务器提取第二请求信息中的时间戳。详细请参见图4所示实施例的S32,在此不再赘述。
S510,预设状态服务器基于提取出的时间戳对第二请求信息进行处理。详细请参见图5所示实施例的S43,在此不再赘述。
作为本发明一种可选的实施方式,图7示出了数据处理系统的结构示意图。其中,在图7中从网关以及状态服务器的功能实现角度,将网关划分为时间戳生成器以及用户请求调度器,将状态服务器划分为请求收发模块、数据处理模块以及交互请求池,将预设位置称之为用户请求信息数据库。具体地:
时间戳生成器:给用户的请求添加唯一的时间戳标记,该时间戳与用户请求到达网关的时间是一致的;
用户请求信息数据库:记录给用户的状态请求信息,包括对应的时间戳信息;
用户请求调度器:将用户请求发送给某一台无状态服务器。当后端有多台服务器时,需要进行计算出一台服务器适合来响应请求,如何计算与设定的具体算法有关。
请求收发模块:响应无状态服务器发送来的状态请求,比如添加、查询、处理状态服务器记录的状态数据,该模块在响应请求时通过查询时间戳数据库来保证响应请求的先后次序与时间戳数据库中的信息是不冲突的。
交互请求池:存储无状态服务器发送过来不能立即处理的交互请求。
数据处理模块:对状态数据的处理,状态数据可以是数据库、文件等。
图7中加粗的箭头:带有时间戳的请求,一个用户的状态请求在抵达网关之后直到得到最终响应之前,中间过程中该请求的时间戳保持不变,且后端服务器在处理该请求说产生的交互请求也会携带该请求的唯一时间戳,如无状态服务器与状态服务器的交互。
首先设定无状态服务器响应用户请求允许的最大时间为MaxRespTime
系统外的用户请求第一步会进入网关节点,网关节点中的时间戳生成器会判断该请求的状态信息。如果该请求是无状态请求,时间戳生成器会直接放过;如果该请求是状态请求,时间戳生成器会立即生成一个当时时刻的时间戳,并将该时间戳添加到用户的请求网络报文中。同时,时间戳生成器还会将生成的时间戳与对应的用户请求添加用户请求数据库中,同时会给该用户请求添加上未处理的标签。其中,时间戳生成器在不同时刻会生成不同的时间戳,这保证了每个用户请求时间戳的唯一性。
用户请求在网关节点中被添加了时间戳后,用户请求调度器会进行下一步的工作。调度器会获取当前的无状态服务器集群的状态信息,再根据用户的具体请求计算出一台最适合响应用户请求的服务器,并将用户请求发送给该无状态服务器。
当某台无状态服务器接到用户请求后,会对状态请求和无状态请求进行差异处理。
(1)如果该请求是无状态请求,则在本地处理后直接将结果返回给用户。
(2)如果该请求是状态请求,则在处理过程中需要和其它的状态服务器进行交互,比如查询和操作某些状态的记录或者数据,这样才能处理用户的状态请求。注意,服务器之间的交互报文会添加用户请求报文中一致的时间戳和用户请求信息。
当无状态服务器与状态服务器进行交互时,状态服务器上的请求收发模块会查询该交互报文中的时间戳,然后携带该时间戳向用户请求信息数据库进行查询,根据查询的结果对无状态服务器的交互请求进行差异处理:
(1)如果该时间戳信息不再数据库中,则丢弃该交互请求,并反馈给无状态服务器。
(2)如果该时间戳与当前时刻的时间差已经大于MaxRespTime,也会丢弃该交互请求,并反馈给无状态服务器。
(3)如果该时间戳之前已经没有未处理的用户请求,则立即处理该交互请求,处理完成之后,立即将用户信息数据库中的该时间戳对应的记录标记为已处理。
(4)如果该时间戳之前仍然有未处理的用户请求,这该交互请求会被丢进交互请求池中。
进一步地,在该方法中还有两处定时处理的任务(定时间隔可以灵活设置):
第一个是状态服务器会定时地从交互请求池中选择具有最早时间戳的交互请求报文,并将该请求重新发给状态服务器上的请求交互模块进行处理。
第二个是用户请求信息数据库会定时遍历数据库,并即时删除已处理或者超时未处理的信息:
(1)如果信息是已处理状态,直接删除;
(2)如果信息是未处理状态,将该条信息时间戳与当前时刻进行对比,如果时间差已经大于MaxRespTime,则直接删除;如果不大于,则保留。
本实施例提出了一套网关+无状态服务器集群+状态服务器的组合架构,辅以时间戳的处理逻辑,保证了在面对无状态数据库集群时用户请求也可以得到及时和正确的响应。
在本实施例中还提供了一种数据处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种数据处理装置,如图8所示,包括:
第一接收模块61,用于接收第一请求信息;
确定模块62,用于基于所述第一请求信息确定请求状态,所述请求状态包括状态请求;
时间戳模块63,用于当所述第一请求信息对应的请求状态为状态请求时,对所述第一请求信息形成当前时刻的时间戳,以得到第二请求信息;
发送模块64,用于将所述第二请求信息发送至第一预设无状态服务器,所述第一预设无状态服务器用于将所述第二请求信息发送至预设状态服务器,以使得所述预设状态服务器基于所述时间戳处理所述第二请求信息。
本实施例提供的数据处理装置,在确定出第一请求信息的请求状态为状态请求时,为第一请求信息形成当前时刻的时间戳以得到第二请求信息,再将携带有时间戳的第二请求信息发送给第一预设无状态服务器进行处理,第一预设无状态服务器用于将第二请求信息发送至预设状态服务器,使得预设状态服务器基于时间戳进行处理,能够保证在面对无状态服务器集群时用户请求也可以得到及时和正确的响应,使得对请求信息的处理是按照请求次序进行处理的,从而提高了数据处理的准确性。
本实施例还提供了一种数据处理装置,如图9所示,包括:
第二接收模块71,用于接收至少一个无状态服务器发送的至少一个第二请求信息;
提取模块72,用于提取所述第二请求信息中的时间戳;
处理模块73,用于基于提取出的时间戳对所述第二请求信息进行处理。
本实施例提供的数据处理装置,利用第二请求信息中的时间戳对第二请求信息进行处理,能够保证在面对无状态服务器集群时用户请求也可以得到及时和正确的响应,使得对请求信息的处理是按照请求次序进行处理的,从而提高了数据处理的准确性。
本实施例中的数据处理装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种电子设备,具有上述图8或9所示的数据处理装置。
请参阅图10,图10是本发明可选实施例提供的一种电子设备的结构示意图,如图10所示,该电子设备可以包括:至少一个处理器81,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口83,存储器84,至少一个通信总线82。其中,通信总线82用于实现这些组件之间的连接通信。其中,通信接口83可以包括显示屏(Display)、键盘(Keyboard),可选通信接口83还可以包括标准的有线接口、无线接口。存储器84可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器84可选的还可以是至少一个位于远离前述处理器81的存储装置。其中处理器81可以结合图8或9所描述的装置,存储器84中存储应用程序,且处理器81调用存储器84中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线82可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线82可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器84可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器84还可以包括上述种类的存储器的组合。
其中,处理器81可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器81还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。
可选地,存储器84还用于存储程序指令。处理器81可以调用程序指令,实现如本申请图2至5实施例中所示的数据处理方法。
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的数据处理方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
- 雷达系统的数据处理方法、装置、电子设备和存储介质
- 数据处理方法、系统、装置、电子设备及存储介质