CN109842646A - 网络请求的处理方法和装置 - Google Patents
网络请求的处理方法和装置 Download PDFInfo
- Publication number
- CN109842646A CN109842646A CN201711203593.1A CN201711203593A CN109842646A CN 109842646 A CN109842646 A CN 109842646A CN 201711203593 A CN201711203593 A CN 201711203593A CN 109842646 A CN109842646 A CN 109842646A
- Authority
- CN
- China
- Prior art keywords
- order
- network request
- present
- data packet
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本发明实施例提供一种网络请求的处理方法和装置,涉及计算机技术领域。本发明实施例的一种网络请求的处理方法,包括:将网络请求中不存在因果关系的命令按照顺序整合成数据包,将所述数据包发送至服务端;接收来自所述服务端的命令回复,按照所述顺序从所述命令回复中提取出与各所述命令对应的执行结果。对于一次网络请求,需要发送多个命令的应用场景,本发明通过分析网络请求中的命令之间的因果关系,将不存在因果关系的命令批量化传输到服务端,将一次网络请求的RTT消耗进行了优化,减少了网络请求的耗时,提高了系统性能。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种网络请求的处理方法和装置。
背景技术
Redis是一个开源的、基于内存的键值对数据库,其支持的数据类型较多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。Redis支持增删改查的操作,Redis客户端通过发送命令的方式让Redis服务器执行相应的操作。
Redis基于传输控制TCP协议(Transmission Control Protocol,传输控制协议)进行信息传输,是一个典型的请求/响应模式服务器。现有技术中,一个请求的实现过程为:Redis客户端发送一个请求到Redis服务器,然后通过阻塞套接字读取服务端的命令回复。服务端接收请求并执行请求中包含的命令,然后返回命令回复给客户端。以查询用户是否被限制登录为例,由于用户登录请求并发量大,需要将限制登录信息存储于多个Redis数据库中,对于每一次用户限制登录查询请求,需要从多个Redis数据库中进行查询,且查询时采用串行阻塞同步请求的方式依次发送多条查询命令,比如执行3条查询命令,如图2所示,Redis客户端需要等待命令1回复后才能发送命令2。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
(1)执行几条命令就需要消耗几个RTT(Round-Trip Time,网络往返时延),即使是内网请求,RTT不到1毫秒,时间消耗也非常严重。
(2)对于每一次的命令传输,协议栈都会加上40字节的数据包首部开销,这些开销浪费网络资源的同时也会减少网络吞吐量,严重的还会导致“模糊窗口综合症”的问题,“模糊窗口综合症”是一种发送请求的数据字节数远小于数据包首部的问题。
(3)网络传输越多,网络的抖动问题对传输的影响也越大,网络传输的失败率也会越高。
发明内容
有鉴于此,本发明实施例提供一种网络请求的处理方法和装置。对于一次网络请求,需要发送多个命令的应用场景,本发明通过分析网络请求中的命令之间的因果关系,将不存在因果关系的命令批量化传输到服务端,将一次网络请求的RTT消耗进行了优化,减少了网络请求的耗时,提高了系统性能。
为实现上述目的,根据本发明实施例的一个方面,提供了一种网络请求的处理方法。
本发明实施例的一种网络请求的处理方法,包括:将网络请求中不存在因果关系的命令按照顺序整合成数据包,将所述数据包发送至服务端;接收来自所述服务端的命令回复,按照所述顺序从所述命令回复中提取出与各所述命令对应的执行结果。
可选地,所述将网络请求中不存在因果关系的命令按照顺序整合成数据包的步骤之前,还包括:分析网络请求中各命令之间的因果关系;其中,所述因果关系的判定依据为:在网络请求的各命令中,如果其中一个所述命令要以另一个所述命令的执行结果作为依据,则这两个命令之间存在因果关系;否则,这两个命令之间不存在因果关系。
可选地,所述将网络请求中不存在因果关系的命令按照顺序整合成数据包,包括:将网络请求中不存在因果关系的所述命令按照顺序添加到第一缓存区。
可选地,所述方法还包括:将所述命令回复存入第二缓存区。
可选地,所述网络请求为用户信息查询请求,所述用户信息包括用户基本信息、用户使用的APP信息和设备信息。
可选地,所述方法还包括:根据所述执行结果判断用户是否被限制登录,返回限制登录结果。
可选地,所述服务端为Redis数据库。
为实现上述目的,根据本发明实施例的另一方面,提供了一种网络请求的处理装置。
本发明实施例的一种网络请求的处理装置,包括:整合发送模块,用于将网络请求中不存在因果关系的命令按照顺序整合成数据包,将所述数据包发送至服务端;接收提取模块,用于接收来自所述服务端的命令回复,按照所述顺序从所述命令回复中提取出各所述命令对应的执行结果。
可选地,所述装置还包括:分析模块,用于:分析网络请求中各命令之间的因果关系;其中,所述因果关系的判定依据为:在网络请求的各命令中,如果其中一个所述命令要以另一个所述命令的执行结果作为依据,则这两个命令之间存在因果关系;否则,这两个命令之间不存在因果关系。
可选地,所述整合发送模块还用于:将不存在因果关系的所述命令按照顺序添加到第一缓存区。
可选地,所述装置还包括:存储模块,用于将所述命令回复存入第二缓存区。
可选地,所述装置还包括:判断模块,用于根据所述执行结果判断用户是否被限制登录,返回限制登录结果。
可选地,所述网络请求为用户信息查询请求,所述用户信息包括用户基本信息、用户使用的APP信息和设备信息。
可选地,所述服务端为Redis数据库。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种网络请求的处理方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种网络请求的处理方法。
上述发明中的一个实施例具有如下优点或有益效果:通过分析网络请求中的命令之间的因果关系,将不存在因果关系的命令批量化传输到服务端,将一次查询请求的RTT消耗进行了优化,减少了查询请求的耗时,提高了系统性能;通过将多条命令作为一个数据包传输,实现了命令的批量化传输,只需要增加一次TCP首部和IP(Internet Protocol)首部的额外开销;通过批量化传输,大量减少了一次网络请求需要传输的数据包个数,进而减少了网络抖动对传输的影响。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的网络请求的处理方法的主要步骤示意图;
图2是现有技术的命令执行原理示意图;
图3是根据本发明实施例的网络请求的处理方法的流程图;
图4是根据本发明实施例的网络请求的处理装置的主要模块示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适用于来实现本发明实施例的电子设备的计算机装置的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本发明实施例的网络请求的处理方法可用于查询用户是否被限制登录、查询用户信息、对数据库进行添加、改写或者删除等。用户信息可以分为用户基本信息(比如用户姓名、用户编号、地址等)、用户使用的APP(Application,应用程序)信息(比如APP名称及版本号、操作系统名称及版本等)和设备信息(比如设备名称、设备编号、设备位置等),这些信息可能存储于不同的Redis数据库中,需要发送多条命令到Redis数据库来获取查询结果,因此可采用本发明实施例的方法进行批量化传输以查询用户信息。由于用户登录请求的并发量大,需要将限制登录信息存储于多个Redis数据库中,不同用户的限制登录信息会存储于不同的Redis数据库中,需要发送多条命令到Redis数据库来获取查询结果,因此也可采用本发明实施例的方法进行批量化传输以查询用户的限制登录信息。在对Redis数据库中的记录进行添加、改写和删除时,添加、改写或者删除一条记录可能需要多条命令,这几条命令也可以采用批量化传输方式,整合成一个完整的数据包发送到Redis服务端。
图1是根据本发明实施例的网络请求的处理方法的主要步骤示意图。如图1所示,本发明实施例的网络请求的处理方法,主要包括如下步骤:
步骤S101:将网络请求中不存在因果关系的命令按照顺序整合成数据包,将所述数据包发送至服务端。该网络请求可以是用户限制登录查询请求、用户信息查询请求、对数据库进行添加、改写或者删除的请求,如果实现该网络请求需要发送多个命令到服务端,则就可以将不存在因果关系的命令整合成数据包以批量化传输到服务端。分析网络请求中各命令之间的因果关系,如果命令2需要以命令1的执行结果作为依据,则命令1和命令2之间就存在因果关系,否则就不存在因果关系。该顺序可以自定义,服务端会按照命令发送的顺序依次执行命令,然后返回命令回复。
步骤S102:接收来自所述服务端的命令回复,按照所述顺序从所述命令回复中提取出与各所述命令对应的执行结果。服务端的命令回复中并不会包含该条执行结果对应的是哪个命令,因此需要在整合数据包时进行约定,然后在提取时,按照之前的约定提取出相应的执行结果。提取出执行结果后,可以根据执行结果查看用户信息、判断用户是否被限制登录、查看对数据库添加、改写、删除的情况。
图3是根据本发明实施例的网络请求的处理方法的流程图。如图3所示,以查询用户是否被限制登录为例,对应的网络请求即为用户限制登录查询请求,对应的命令为查询命令,本发明实施例的用户限制登录查询请求的处理过程中需要使用到的设备包括登录系统、登录安全旁路系统和Redis数据库。
登录系统用来处理用户登录请求,一般不仅提供登录注册的相关功能,同时也对APP的每一笔交易业务提供安全可靠的用户身份识别和访问鉴权功能,因此登录系统对于APP的正常使用至关重要。用户在APP输入用户名和密码,点击“登录”按钮后,用户登录请求就会到达登录系统。登录系统分析用户登录请求,首先需要对该用户进行风控验证,判断该用户的风险等级,是否具备登录权限。如果该用户不具备登录权限,那么直接返回给客户端,并在APP上显示类似提示语“你的账户存在安全风险”;如果具备登录权限,那么会对用户名和密码进行验证,检查用户名和密码是否正确。然而,每次商品促销,很多非法用户和黄牛通过伪造登录数据包,破解登录协议,进行暴力登录和攻击以抢下大量的促销商品,严重影响着登录系统的稳定性和安全性。
登录安全旁路系统基于登录频率控制的方式,来抵御用户的非法登录,当特定用户在一段时间内登录次数达到上限阀值,将会被限制登录一段时间。当收到用户登录请求时,登录系统通过登录安全旁路系统判断该用户是否被限制登录。由于用户登录请求的并发量大,需要将限制登录信息存储于多个Redis数据库中,不同用户的限制登录信息会存储于不同的Redis数据库中。对于登录系统的每一次用户限制登录查询请求,登录安全旁路系统都需要从多个Redis数据库中进行多达20次的查询,然后将查询结果返回至登录系统。因此登录安全旁路系统的性能直接影响着登录系统的性能,如何最大程度地减少登录安全旁路系统的耗时摆在了重要的位置。
本发明实施例中登录安全旁路系统作为客户端,Redis数据库作为服务端,下面描述方案细节:
(1)登录安全旁路系统接收到来自登录系统的用户限制登录查询请求后,分析该用户限制登录查询请求中的Redis查询命令之间的因果关系,将不存在因果关系的Redis查询命令整合成一个数据包。
一个用户限制登录查询请求中可能会包含多条Redis查询命令,分析的过程是:如果查询命令2需要以查询命令1的查询结果作为依据,那么查询命令1和查询命令2之间就存在因果关系,否则就不存在因果关系。整合的过程是:将不存在因果关系的Redis查询命令按照查询顺序添加到第一内存缓存区。每一条Redis查询命令都是一段字节流,这些字节流按照Redis指定的命令格式(该格式就是网络协议)进行组合。
下面对分析的过程进行举例说明:假设一次用户限制登录查询请求需要分别执行三条查询命令:1、查询白名单Redis数据库,以获取该用户是否被设置了白名单;2、通过该用户的用户名查询限制结果Redis数据库,以查询该用户名的限制登录信息;3、通过该用户的IP地址查询限制结果Redis数据库,以查询该IP地址的限制登录信息。
上面这个例子中查询命令1和查询命令2、查询命令3就有因果关系,因为如果该用户如果被设置了白名单,那么我们就不会对其登录进行限制,那么也就没必要发送查询命令2和查询命令3了,所以是否发送查询命令2和查询命令3依赖于查询命令1的查询结果。而查询命令2和查询命令3之间没有因果关系,因为如果没有被设置白名单,那这两个命令都需要被执行。
依据上面的例子,查询命令1和查询命令2之间有因果关系,查询命令2是否需要执行,依赖于查询命令1的查询结果,所以就不能将查询命令1和查询命令2整合成一个数据包(因为整合成一个数据包意味着这两个查询命令都需要被一起执行,尽管Redis数据库是串行依次执行查询命令1、查询命令2,但结果都是两个查询命令被执行了)。而查询命令2和查询命令3之间没有因果关系,那么查询命令2和查询命令3都需要被一起执行,所以将这两条查询命令整合成一个数据包,等待一起作为一个数据包被发送到Redis服务端。
(2)登录安全旁路系统将该数据包发送至Redis数据库,然后等待Redis数据库的命令回复。Redis数据库接收到数据包后,根据Redis的命令格式,分析出其中包含的查询命令数量,并依次执行查询命令。实际上,Redis数据库接收到数据包后,将这些数据包添加到接收缓存区中,每次从缓存区中取出一条查询命令(按照Redis的命令格式,有严格的命令边界,因为两条不同的查询命令不会粘连)并执行。
(3)登录安全旁路系统收到命令回复后,将命令回复存入第二内存缓存区中。Redis数据库收到数据包后,由于数据包中的查询命令按照Redis的命令格式,命令与命令之间有特定边界,Redis数据库会按照查询命令发送的顺序依次执行,然后将查询结果一起回复给登录安全旁路系统。该命令回复就是用户的限制登录信息。
(4)登录安全旁路系统按照(1)中的查询顺序,依次从第二内存缓存区中提取各查询命令的查询结果,根据查询结果判断该用户是否被限制登录。因为Redis数据库的命令回复不会告诉我们这条查询结果对应的是什么查询命令,需要登录安全旁路系统需要在向Redis数据库查询时进行约定,然后在提取命令回复时,按照原先我们整合查询命令的顺序进行提取。
(5)登录安全旁路系统将用户的限制登录结果返回至登录系统。
仍旧以上面的3条查询命令为例,假设每个用户有多个维度的限制登录信息(比如用户名、IP地址)。如果这两个维度的限制信息存在于同一个Redis数据库中,采用本发明的技术方案,这3条查询命令可以生成两个数据包(一条数据包用来查询该用户是否被设置了白名单,另一条数据包用来查询用户名和IP地址是否被限制登录);如果这两个维度的限制信息分别存在于两个不同的Redis数据库中,则需要对这两个Redis数据库分别发送数据包进行查询。
通过本发明实施例的网络请求的处理方法可以看出,通过分析网络请求中的命令之间的因果关系,将不存在因果关系的命令批量化传输到服务端,将一次查询请求的RTT消耗进行了优化,减少了查询请求的耗时,提高了系统性能;通过将多条命令作为一个数据包传输,实现了命令的批量化传输,只需要增加一次TCP首部和IP首部的额外开销;通过批量化传输,大量减少了一次网络请求需要传输的数据包个数,进而减少了网络抖动对传输的影响。
图4是根据本发明实施例的网络请求的处理装置的主要模块示意图。如图4所示,本发明实施例的网络请求的处理装置400,主要包括:
整合发送模块401,用于将网络请求中不存在因果关系的命令按照顺序整合成数据包,将所述数据包发送至服务端。该网络请求可以是用户限制登录查询请求、用户信息查询请求、对数据库进行添加、改写或者删除的请求,如果实现该网络请求需要发送多个命令到服务端,则就可以将不存在因果关系的命令整合成数据包以批量化传输到服务端。如果命令2需要以命令1的执行结果作为依据,则命令1和命令2之间就存在因果关系,否则就不存在因果关系。该顺序可以自定义,服务端会按照命令发送的顺序依次执行命令,然后返回命令回复。实施例中网络请求的处理装置400为登录安全旁路系统,服务端为Redis数据库。
接收提取模块402,用于接收来自所述服务端的命令回复,按照所述顺序从所述命令回复中提取出各所述命令对应的执行结果。服务端的命令回复中并不会包含该条执行结果对应的是哪个命令,因此需要在整合数据包时进行约定,然后在提取时,按照之前的约定提取出相应的执行结果。提取出执行结果后,可以根据执行结果查看用户信息、判断用户是否被限制登录、查看对数据库添加、改写、删除的情况。
另外,本发明实施例的网络请求的处理装置还可以包括:分析模块、存储模块和判断模块(图中未示出)。分析模块,用于分析网络请求中各命令之间的因果关系。存储模块,用于将所述命令回复存入第二缓存区。判断模块,用于根据所述执行结果判断用户是否被限制登录,返回限制登录结果。
从以上描述可以看出,通过分析网络请求中的命令之间的因果关系,将不存在因果关系的命令批量化传输到服务端,将一次查询请求的RTT消耗进行了优化,减少了查询请求的耗时,提高了系统性能;通过将多条命令作为一个数据包传输,实现了命令的批量化传输,只需要增加一次TCP首部和IP首部的额外开销;通过批量化传输,大量减少了一次网络请求需要传输的数据包个数,进而减少了网络抖动对传输的影响。
图5示出了可以应用本发明实施例的网络请求的处理方法或网络请求的处理装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本申请实施例所提供的网络请求的处理方法一般由服务器505执行,相应地,网络请求的处理装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种网络请求的处理方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种网络请求的处理方法。
下面参考图6,其示出了适用于来实现本发明实施例的电子设备的计算机系统600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有计算机系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括整合发送模块和接收提取模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,整合发送模块还可以被描述为“将网络请求中不存在因果关系的命令按照顺序整合成数据包,将所述数据包发送至服务端的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:将网络请求中不存在因果关系的命令按照顺序整合成数据包,将所述数据包发送至服务端;接收来自所述服务端的命令回复,按照所述顺序从所述命令回复中提取出与各所述命令对应的执行结果。
从以上描述可以看出,通过分析网络请求中的命令之间的因果关系,将不存在因果关系的命令批量化传输到服务端,将一次查询请求的RTT消耗进行了优化,减少了查询请求的耗时,提高了系统性能;通过将多条命令作为一个数据包传输,实现了命令的批量化传输,只需要增加一次TCP首部和IP首部的额外开销;通过批量化传输,大量减少了一次网络请求需要传输的数据包个数,进而减少了网络抖动对传输的影响。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (13)
1.一种网络请求的处理方法,其特征在于,包括:
将网络请求中不存在因果关系的命令按照顺序整合成数据包,将所述数据包发送至服务端;
接收来自所述服务端的命令回复,按照所述顺序从所述命令回复中提取出与各所述命令对应的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述将网络请求中不存在因果关系的命令按照顺序整合成数据包的步骤之前,还包括:分析网络请求中各命令之间的因果关系;其中,所述因果关系的判定依据为:在网络请求的各命令中,如果其中一个所述命令要以另一个所述命令的执行结果作为依据,则这两个命令之间存在因果关系;否则,这两个命令之间不存在因果关系。
3.根据权利要求1所述的方法,其特征在于,所述将网络请求中不存在因果关系的命令按照顺序整合成数据包,包括:将网络请求中不存在因果关系的所述命令按照顺序添加到第一缓存区。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述命令回复存入第二缓存区。
5.根据权利要求1所述的方法,其特征在于,所述网络请求为用户信息查询请求,所述用户信息包括用户基本信息、用户使用的APP信息和设备信息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所述执行结果判断用户是否被限制登录,返回限制登录结果。
7.根据权利要求1-6任一所述的方法,其特征在于,所述服务端为Redis数据库。
8.一种网络请求的处理装置,其特征在于,包括:
整合发送模块,用于将网络请求不存在因果关系的命令按照顺序整合成数据包,将所述数据包发送至服务端;
接收提取模块,用于接收来自所述服务端的命令回复,按照所述顺序从所述命令回复中提取出各所述命令对应的执行结果。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:分析模块,用于分析网络请求中各命令之间的因果关系;其中,所述因果关系的判定依据为:在网络请求的各命令中,如果其中一个所述命令要以另一个所述命令的执行结果作为依据,则这两个命令之间存在因果关系;否则,这两个命令之间不存在因果关系。
10.根据权利要求8所述的装置,其特征在于,所述整合发送模块还用于:将不存在因果关系的所述命令按照顺序添加到第一缓存区。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:存储模块,用于将所述命令回复存入第二缓存区。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
13.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711203593.1A CN109842646A (zh) | 2017-11-27 | 2017-11-27 | 网络请求的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711203593.1A CN109842646A (zh) | 2017-11-27 | 2017-11-27 | 网络请求的处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109842646A true CN109842646A (zh) | 2019-06-04 |
Family
ID=66880083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711203593.1A Pending CN109842646A (zh) | 2017-11-27 | 2017-11-27 | 网络请求的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109842646A (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070074215A1 (en) * | 2005-09-27 | 2007-03-29 | Bethea Timothy J | Stateless server-side automation of web service requests using dynamically generated web service interfaces |
CN101719929A (zh) * | 2009-11-20 | 2010-06-02 | 山东中创软件商用中间件股份有限公司 | 一种实现Web Service下实时数据传输的方法 |
CN102222297A (zh) * | 2010-04-15 | 2011-10-19 | 中国银联股份有限公司 | 数据处理方法及系统 |
CN102291324A (zh) * | 2011-06-28 | 2011-12-21 | 北京神州泰岳软件股份有限公司 | 高并发业务请求处理方法 |
CN102387206A (zh) * | 2011-10-20 | 2012-03-21 | 镇江睿泰信息科技有限公司 | 一种Web服务并发请求合成方法及系统 |
CN102480463A (zh) * | 2010-11-23 | 2012-05-30 | 腾讯科技(深圳)有限公司 | 网络交互方法及系统 |
CN102868608A (zh) * | 2012-09-04 | 2013-01-09 | 江苏大学 | 一种基于消息机制的企业服务总线系统 |
CN103081382A (zh) * | 2010-09-01 | 2013-05-01 | 佳能株式会社 | 用于多路复用网络信道的系统和方法 |
CN103401909A (zh) * | 2013-07-24 | 2013-11-20 | 迈普通信技术股份有限公司 | 基于bs的数据交互方法与系统、客户端及服务器 |
CN103532756A (zh) * | 2013-10-15 | 2014-01-22 | 上海寰创通信科技股份有限公司 | 一种基于网管系统的命令行系统以及命令行操作方法 |
CN105069163A (zh) * | 2015-08-26 | 2015-11-18 | 广州神马移动信息科技有限公司 | 网络请求处理方法和装置 |
CN105282244A (zh) * | 2015-09-29 | 2016-01-27 | 华为技术有限公司 | 一种数据处理方法、装置、服务器及控制器 |
CN106657193A (zh) * | 2015-11-02 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 一种请求处理方法、装置、终端设备及服务器 |
CN106790444A (zh) * | 2016-12-06 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 网络数据交互方法和装置 |
-
2017
- 2017-11-27 CN CN201711203593.1A patent/CN109842646A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070074215A1 (en) * | 2005-09-27 | 2007-03-29 | Bethea Timothy J | Stateless server-side automation of web service requests using dynamically generated web service interfaces |
CN101719929A (zh) * | 2009-11-20 | 2010-06-02 | 山东中创软件商用中间件股份有限公司 | 一种实现Web Service下实时数据传输的方法 |
CN102222297A (zh) * | 2010-04-15 | 2011-10-19 | 中国银联股份有限公司 | 数据处理方法及系统 |
CN103081382A (zh) * | 2010-09-01 | 2013-05-01 | 佳能株式会社 | 用于多路复用网络信道的系统和方法 |
CN102480463A (zh) * | 2010-11-23 | 2012-05-30 | 腾讯科技(深圳)有限公司 | 网络交互方法及系统 |
CN102291324A (zh) * | 2011-06-28 | 2011-12-21 | 北京神州泰岳软件股份有限公司 | 高并发业务请求处理方法 |
CN102387206A (zh) * | 2011-10-20 | 2012-03-21 | 镇江睿泰信息科技有限公司 | 一种Web服务并发请求合成方法及系统 |
CN102868608A (zh) * | 2012-09-04 | 2013-01-09 | 江苏大学 | 一种基于消息机制的企业服务总线系统 |
CN103401909A (zh) * | 2013-07-24 | 2013-11-20 | 迈普通信技术股份有限公司 | 基于bs的数据交互方法与系统、客户端及服务器 |
CN103532756A (zh) * | 2013-10-15 | 2014-01-22 | 上海寰创通信科技股份有限公司 | 一种基于网管系统的命令行系统以及命令行操作方法 |
CN105069163A (zh) * | 2015-08-26 | 2015-11-18 | 广州神马移动信息科技有限公司 | 网络请求处理方法和装置 |
CN105282244A (zh) * | 2015-09-29 | 2016-01-27 | 华为技术有限公司 | 一种数据处理方法、装置、服务器及控制器 |
CN106657193A (zh) * | 2015-11-02 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 一种请求处理方法、装置、终端设备及服务器 |
CN106790444A (zh) * | 2016-12-06 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 网络数据交互方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11087249B2 (en) | Method and apparatus for triggering execution of a workflow over a network | |
CN110019211A (zh) | 关联索引的方法、装置和系统 | |
IL275042A (en) | Security monitoring Level of application programming programming with self-adaptation | |
US20040230667A1 (en) | Loosely coupled intellectual capital processing engine | |
US20210385251A1 (en) | System and methods for integrating datasets and automating transformation workflows using a distributed computational graph | |
CN109218368A (zh) | 实现Http反向代理的方法、装置、电子设备和可读介质 | |
CN109683998A (zh) | 国际化实现方法、装置和系统 | |
CN110347942A (zh) | 页面跳转方法、装置、存储介质及计算机设备 | |
CN110198248B (zh) | 检测ip地址的方法和装置 | |
US7428756B2 (en) | Access control over dynamic intellectual capital content | |
CN107844324A (zh) | 客户端页面跳转处理方法和装置 | |
US11546380B2 (en) | System and method for creation and implementation of data processing workflows using a distributed computational graph | |
CN107547548A (zh) | 数据处理方法及系统 | |
CN110162994A (zh) | 权限控制方法、系统、电子设备及计算机可读存储介质 | |
CN109918191A (zh) | 一种业务请求防频的方法和装置 | |
US20040230982A1 (en) | Assembly of business process using intellectual capital processing | |
CN109639804A (zh) | 生产系统的监控方法、系统及生产设备、终端、服务器 | |
CN110019539A (zh) | 一种数据仓库的数据同步的方法和装置 | |
CN107729394A (zh) | 基于Hadoop集群的数据集市管理系统及其使用方法 | |
CN111045928A (zh) | 一种接口数据测试方法、装置、终端及存储介质 | |
US20040230567A1 (en) | Integrating intellectual capital into an intellectual capital management system | |
CN115840956A (zh) | 一种文件处理方法、装置、服务器及介质 | |
CN109842646A (zh) | 网络请求的处理方法和装置 | |
CN110399397A (zh) | 一种数据查询方法和系统 | |
US20040230691A1 (en) | Evolutionary development of intellectual capital in an intellectual capital management system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190604 |
|
RJ01 | Rejection of invention patent application after publication |