CN115334150B - 一种数据转发的方法、装置、系统、电子设备及介质 - Google Patents

一种数据转发的方法、装置、系统、电子设备及介质 Download PDF

Info

Publication number
CN115334150B
CN115334150B CN202210975706.4A CN202210975706A CN115334150B CN 115334150 B CN115334150 B CN 115334150B CN 202210975706 A CN202210975706 A CN 202210975706A CN 115334150 B CN115334150 B CN 115334150B
Authority
CN
China
Prior art keywords
data
client
environment
request
request data
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.)
Active
Application number
CN202210975706.4A
Other languages
English (en)
Other versions
CN115334150A (zh
Inventor
刘伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Beibeitong Technology Co ltd
Original Assignee
Beijing Beibeitong Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Beibeitong Technology Co ltd filed Critical Beijing Beibeitong Technology Co ltd
Priority to CN202210975706.4A priority Critical patent/CN115334150B/zh
Publication of CN115334150A publication Critical patent/CN115334150A/zh
Application granted granted Critical
Publication of CN115334150B publication Critical patent/CN115334150B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供一种数据转发的方法、装置、系统、电子设备及介质,该方法包括:获取至少一个客户端发送的请求数据和环境标识,其中,环境标识采用不同标识区分多种环境,多种环境至少包括生产环境和测试环境,一个客户端对应一个环境标识;向供应商设备发送请求数据,并且接收供应商设备根据请求数据生成的返回数据;从至少一个客户端中选择出与环境标识相对应的目标客户端,并且向目标客户端发送返回数据。通过本申请的一些实施例能够通过第三方代理设备将供应商设备发送的返回数据转发到对应的运行环境中,从而能够减轻供应商设备以及客户端的运行压力,提高数据转发效率。

Description

一种数据转发的方法、装置、系统、电子设备及介质
技术领域
本申请实施例涉及数据传输领域,具体涉及一种数据转发的方法、装置、系统、电子设备及介质。
背景技术
随着公司业务(例如,车票售卖类公司)的范围不断的扩大,通常会接入供应商设备(例如,车票售卖类公司的供应商)来支持公司的某个业务线的逻辑。相关技术中,使用至少一个客户端直接与供应商设备进行连接,以进行数据传输。但是,由于每个公司的软件开发周期各不相同(例如,处于测试阶段、开发阶段等),在客户端与供应商设备对接时,存在供应商设备只有一个对接环境的情况,导致数据在返回时不明确应转发到哪一个运行环境,进而降低了数据传输的效率。
因此,如何提高数据转发的效率成为需要解决的问题。
发明内容
本申请实施例提供一种数据转发的方法、装置、系统、电子设备及介质,本申请的一些实施例至少能够通过第三方代理设备将供应商设备发送的返回数据转发到对应的运行环境中,从而能够减轻供应商设备以及客户端的运行压力,提高数据转发效率。
第一方面,本申请提供了一种数据转发的方法,应用于第三方代理设备,所述方法包括:获取至少一个客户端发送的请求数据和环境标识,其中,所述环境标识采用不同标识区分多种环境,所述多种环境至少包括生产环境和测试环境,一个客户端对应一个环境标识;向供应商设备发送所述请求数据,并且接收所述供应商设备根据所述请求数据生成的返回数据;从所述至少一个客户端中选择出与所述环境标识相对应的目标客户端,并且向所述目标客户端发送所述返回数据。
因此,与相关技术中直接由客户端与供应商设备进行数据传输的方法不同的是,本申请实施例通过在客户端与供应商设备之间设置第三方代理设备,通过第三方代理设备将供应商设备发送的返回数据转发到对应的运行环境中,从而能够减轻供应商设备以及客户端的运行压力,提高数据转发效率。
结合第一方面,在本申请的一些实施例中,所述至少一个客户端中包括第一客户端,其中,所述第一客户端为所述至少一个客户端中的任意一个,所述第一客户端发送的所述请求数据包括第一请求数据,所述第一请求数据为所述请求数据中的任意一条,所述第一客户端部署的运行环境为第一运行环境;在所述获取至少一个客户端发送的请求数据和环境标识之后,所述方法还包括:基于所述第一请求数据获得第一注册事件信息,并且存储所述第一注册事件信息,其中,所述第一注册事件信息至少包括所述第一请求数据与第一环境标识之间的对应关系,所述第一环境标识用于表征所述第一运行环境;所述从所述至少一个客户端中选择出与所述环境标识相对应的目标客户端,并且向所述目标客户端发送所述返回数据,包括:根据所述第一注册事件信息,从所述至少一个客户端中选择出与所述第一环境标识相对应的所述第一客户端;向所述第一客户端发送第一返回数据,其中,所述第一返回数据是所述供应商设备根据所述第一请求数据生成的。
因此,本申请实施例通过第一注册事件信息向第一客户端发送第一返回数据,能够从第一注册事件信息中获得发送请求数据的客户端对应的环境标识,从而能够快速的将返回数据转发到与环境标识相对应的第一客户端。
结合第一方面,在本申请的一些实施例中,在所述根据所述第一注册事件信息,从所述至少一个客户端中选择出与所述第一环境标识相对应的所述第一客户端之前,所述方法还包括:解析所述第一返回数据获得第一请求关键值,其中,所述第一请求关键值用于表征所述第一返回数据与第一请求数据之间的对应关系;所述根据所述第一注册事件信息,从所述至少一个客户端中选择出与所述第一环境标识相对应的所述第一客户端,包括:基于所述第一请求关键值查找并获取所述第一注册事件信息;从所述第一注册事件信息中查找与所述第一请求数据对应的第一环境标识,并且从所述至少一个客户端中选择出与所述第一环境标识相对应的所述第一客户端。
因此,本申请实施例通过解析第一请求关键值,能够依据该请求关键值从第三方代理设备的数据库中查找对应的环境标识,从而能够准确的对应到接收数据的第一客户端。
结合第一方面,在本申请的一些实施例中,在所述解析所述第一返回数据获得第一请求关键值之前,所述方法还包括:检测所述第一返回数据,并且确认所述供应商设备为安全设备;对所述第一返回数据进行解密,获得第一解密返回数据;对所述第一解密返回数据的数据格式进行转换,获得第一目标返回数据;所述解析所述第一返回数据获得第一请求关键值,包括:解析所述第一目标返回数据获得所述第一请求关键值。
因此,本申请实施例通过对第一返回数据进行解密以及格式转换,能够将正确格式的数据传输到第一客户端中。
结合第一方面,在本申请的一些实施例中,所述向所述第一客户端发送第一返回数据,包括:在域名配置表中查找与所述第一环境标识相对应的目标域名,其中,所述域名配置表中存储有与多个环境标识相对应的访问域名;基于所述目标域名访问所以第一客户端的接口,并且通过所述接口将所述第一返回数据发送到所述第一客户端。
因此,本申请实施例通过在域名配置表中查找与第一环境标识相对应的目标域名,能够准确的将第一返回数据发送到第一客户端。
结合第一方面,在本申请的一些实施例中,在所述获取至少一个客户端发送的请求数据和环境标识之前,所述方法还包括:获取当前所述第三方代理设备的通过流量数值;若所述通过流量数值大于预设流量上限,则阻止后续的请求数据进入。
因此,本申请实施例通过控制流量,能够防止第三方代理设备资源拥堵,从而能够保证第三方代理设备的正常运行。
第二方面,本申请提供了一种数据转发的装置,所述装置包括:数据获取模块,被配置为获取至少一个客户端发送的请求数据和环境标识,其中,所述环境标识采用不同标识区分多种环境,所述多种环境至少包括生产环境和测试环境,一个客户端对应一个环境标识;数据发送模块,被配置为向供应商设备发送所述请求数据,并且接收所述供应商设备根据所述请求数据生成的返回数据;数据返回模块,被配置为从所述至少一个客户端中选择出与所述环境标识相对应的目标客户端,并且向所述目标客户端发送所述返回数据。
结合第二方面,在本申请的一些实施例中,所述至少一个客户端中包括第一客户端,其中,所述第一客户端为所述至少一个客户端中的任意一个,所述第一客户端发送的所述请求数据包括第一请求数据,所述第一请求数据为所述请求数据中的任意一条,所述第一客户端部署的运行环境为第一运行环境;所述数据获取模块被配置为:基于所述第一请求数据获得第一注册事件信息,并且存储所述第一注册事件信息,其中,所述第一注册事件信息至少包括所述第一请求数据与第一环境标识之间的对应关系,所述第一环境标识用于表征所述第一运行环境;所述数据返回模块被配置为:根据所述第一注册事件信息,从所述至少一个客户端中选择出与所述第一环境标识相对应的所述第一客户端;向所述第一客户端发送第一返回数据,其中,所述第一返回数据是所述供应商设备根据所述第一请求数据生成的。
结合第二方面,在本申请的一些实施例中,所述数据返回模块被配置为:解析所述第一返回数据获得第一请求关键值,其中,所述第一请求关键值用于表征所述第一返回数据与第一请求数据之间的对应关系;所述数据返回模块被配置为:基于所述第一请求关键值查找并获取所述第一注册事件信息;从所述第一注册事件信息中查找与所述第一请求数据对应的第一环境标识,并且从所述至少一个客户端中选择出与所述第一环境标识相对应的所述第一客户端。
结合第二方面,在本申请的一些实施例中,所述数据返回模块被配置为:检测所述第一返回数据,并且确认所述供应商设备为安全设备;对所述第一返回数据进行解密,获得第一解密返回数据;对所述第一解密返回数据的数据格式进行转换,获得第一目标返回数据;所述解析所述第一返回数据获得第一请求关键值,包括:解析所述第一目标返回数据获得所述第一请求关键值。
结合第二方面,在本申请的一些实施例中,数据返回模块被配置为:在域名配置表中查找与所述第一环境标识相对应的目标域名,其中,所述域名配置表中存储有与多个环境标识相对应的访问域名;基于所述目标域名访问所以第一客户端的接口,并且通过所述接口将所述第一返回数据发送到所述第一客户端。
结合第二方面,在本申请的一些实施例中,数据获取模块被配置为:获取当前所述第三方代理设备的通过流量数值;若所述通过流量数值大于预设流量上限,则阻止后续的请求数据进入。
第三方面,本申请提供了一种数据转发的系统,所述系统包括:至少一个客户端,被配置为发送所述请求数据和环境标识;第三方代理设备,被配置为获取至少一个客户端发送的请求数据和环境标识,并且根据所述请求数据和环境标识执行如第一方面任意实施例所述的方法。供应商设备,被配置为接收所述第三方代理设备发送的所述请求数据,根据所述请求数据生成返回数据,并且将所述返回数据发送到所述第三方代理设备。
第四方面,本申请提供了一种电子设备,包括:处理器、存储器和总线;所述处理器通过所述总线与所述存储器相连,所述存储器存储有计算机程序,所述计算机程序由所述处理器执行时可实现如第一方面任意实施例所述的方法。
第五方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被执行时可实现如第一方面任意实施例所述的方法。
附图说明
图1为本申请实施例示出的一种数据转发的场景组成示意图;
图2为本申请实施例示出的一种数据转发的方法流程图之一;
图3为相关技术中的数据转发流程示意图;
图4为本申请实施例示出的一种数据转发的方法流程图之二;
图5为本申请实施例示出的一种数据转发的方法流程图之三;
图6为本申请实施例示出的一种第三方代理设备的架构示意图;
图7为本申请实施例示出的一种数据转发的方法流程图之四;
图8为本申请实施例示出的一种数据转发的方法流程图之五;
图9为本申请实施例示出的一种数据转发的装置组成示意图;
图10为本申请实施例示出的一种电子设备组成示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对附图中提供的本申请的实施例的详情描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护范围。
本申请实施例可以应用于第三方代理设备在客户端向供应商设备请求服务的过程中,对请求数据和返回数据进行转发的场景。为了改善背景技术中的问题,在本申请的一些实施例中,通过第三方代理设备从至少一个客户端中选择出与环境标识相对应的目标客户端,并且向目标客户端转发返回数据。例如,在本申请的一些实施例中,第三方代理设备至少被配置为:首先,获取至少一个客户端发送的请求数据和环境标识,然后,将环境标识进行存储并且将请求数据发送到供应商设备中,最后,基于存储的环境标识从至少一个客户端中选择出目标客户端,并且将返回数据转发到目标客户端中。
下面结合附图详细描述本申请实施例中的方法步骤。
图1提供了本申请一些实施例中的数据转发的场景的组成示意图,该场景包括至少一个客户端(例如,至少一个客户端包括客户端111和客户端112)、第三方代理设备120和供应商设备130。具体的,客户端111和客户端112分别向第三方代理设备120发送了请求数据和环境标识。第三方代理设备120将环境标识进行存储,并且将请求数据输入到供应商设备130中。供应商设备130根据请求数据生成返回数据,并且将返回数据输入到第三方代理设备120中。第三方代理设备120基于环境标识从客户端111和客户端112中选择出客户端112为目标客户端,之后将返回数据发送到客户端112。
如图2所示,与本申请实施例不同的是相关技术中,客户端111向供应商设备130发送请求数据A,客户端112向供应商设备130发送请求数据B。供应商设备130根据请求数据A和请求数据B生成返回数据A和返回数据B。但是,供应商设备130将返回数据A和返回数据B一起发送到客户端111中,再由客户端111将返回数据B发送到客户端112,导致降低了数据转发的效率。
下面将描述本申请中由第三方代理设备执行的一种数据转发的方法的实施过程。
至少为了解决背景技术中的问题,如图3所示,本申请一些实施例提供了一种数据转发的方法,该方法包括:
S310,获取至少一个客户端发送的请求数据和环境标识。
例如,本申请中的至少一个客户端可以是域名一致,但运行环境不同的客户端。
需要说明的是,环境标识采用不同标识区分多种环境,多种环境至少包括生产环境和测试环境,一个客户端对应一个环境标识。环境标识的总数目与所要表达的环境的总数目相等。
例如,环境标识包括A、B和C,多种环境包括生产环境、测试环境和开发环境,其中,生产环境对应的环境标识为A,测试环境对应的环境标识为B,开发环境对应的标识为C。
需要说明的是,至少一个客户端中包括第一客户端,其中,第一客户端为至少一个客户端中的任意一个,第一客户端发送的请求数据包括第一请求数据,第一请求数据为请求数据中的任意一条,第一客户端部署的运行环境为第一运行环境。
在本申请的一种实施方式中,在S310之前还包括:获取当前第三方代理设备的通过流量数值,若通过流量数值大于预设流量上限,则阻止后续的请求数据进入。
也就是说,由于第三方代理设备的承载能力有限,因此需要在接收数据之前对当前的通过流量数值进行统计,若当前通过流量数值大于预设流量上限,说明第三方代理设备的承载能力已达到上限,需要限流,因此阻值后续的请求数据进入。若当前通过流量数值大于预设流量上限,说明第三方代理设备的承载能力没有到达上限,因此可以让后续的请求数据进入。
在本申请的一种实施方式中,在S310之后还包括:基于第一请求数据获得第一注册事件信息,并且存储第一注册事件信息。
需要说明的是,第一注册事件信息至少包括第一请求数据与第一环境标识之间的对应关系,第一环境标识用于表征第一运行环境。
也就是说,在获得第一请求数据之后,建立第一请求数据与第一环境标识之间的对应关系,即进行注册事件操作,并且将其进行存储。例如,第一客户端对应的第一环境标识为A,则建立第一请求数据与第一环境标识A之间的对应关系,并且存储在第三方代理设备的数据库中。
S320,向供应商设备发送请求数据,并且接收供应商设备根据请求数据生成的返回数据。
也就是说,在S310中获得请求数据之后,向供应商设备转发该请求数据。供应商设备在接收到请求数据之后,根据请求数据生成对应的返回数据。即在S310中获得第一请求数据之后,向供应商设备转发该第一请求数据。供应商设备在接收到第一请求数据之后,根据第一请求数据生成对应的第一返回数据。
可以理解的是,供应商设备是为客户端服务的设备,例如,供应商设备为客户端提供订票服务、支付服务、查询服务等。第一请求数据可以是询问车票价格的请求,也可以是查询车票信息的请求,对应的第一返回数据可以是车票价格、车票信息、支付成功通知等。本申请对供应商设备提供的服务、第一请求数据的内容以及第一返回数据的内容不进行限定。
S330,从至少一个客户端中选择出与环境标识相对应的目标客户端,并且向目标客户端发送返回数据。
也就是说,第三方代理设备在获取到返回数据之后,需要基于存储的环境标识,从至少一个客户端中查找到与环境标识对应的目标客户端,并且将在S320中获得的返回数据,转发到目标客户端。
具体的,S330的具体实施方式如下步骤S1-S6所示。
S1,检测第一返回数据,并且确认供应商设备为安全设备。
也就是说,为了保证至少一个客户端中各客户端的安全性,在接收到第一返回数据之后,需要确认供应商设备为安全设备。
作为本申请一具体实施例,可以在第三方代理设备中设置防火墙,使用防火墙策略对第一返回数据进行检测,进而判断供应商设备的IP地址、流量特征等,通过确认供应商设备为安全设备,而确认第一返回数据为安全流量。若确认第一返回数据不是安全流量则拦截该第一返回数据。
作为本申请另一具体实施例,检测第一返回数据获得协议数据,确认该协议数据为至少一个客户端与供应商设备预先沟通的协议,若该协议数据为预先沟通的协议,则确认供应商设备为安全设备,若该协议数据不是预先沟通的协议,则确认供应商设备非安全设备,进而对第一返回数据进行拦截。
S2,对第一返回数据进行解密,获得第一解密返回数据。
也就是说,为了保证数据传输的安全性,防止数据外泄,在供应商设备生成第一返回数据之后,对第一返回数据进行加密传输,第三方代理设备在接收到第一返回数据之后,对其进行解密获得第一解密返回数据。
在S2的另一种实施方式中,在获得第一解密返回数据之后,在对第一解密返回数据使用另一种加密形式进行加密,之后转发到目标客户端。目标客户端在对加密后的第一返回数据进行解密,获得第一返回数据。
S3,对第一解密返回数据的数据格式进行转换,获得第一目标返回数据。
也就是说,供应商设备发送的返回数据可能存在目标客户端不能够识别的情况,因此需要在对第一解密返回数据进行数据格式的转换,获得第一目标返回数据。
可以理解的是,上述S1-S3的执行顺序可以进行调换,本申请对S1-S3的执行顺序不做限定。
S4,解析第一返回数据获得第一请求关键值。
需要说明的是,第一请求关键值用于表征第一返回数据与第一请求数据之间的对应关系。
具体的,解析第一目标返回数据获得第一请求关键值,即解析第一目标返回数据获得染色参数,并且基于该染色参数查找与第一返回数据对应的第一请求数据,之后基于第一请求数据与环境标识之间的对应关系,匹配到第一环境标识。
S5,根据第一注册事件信息,从至少一个客户端中选择出与第一环境标识相对应的第一客户端。
S51,基于第一请求关键值查找并获取第一注册事件信息。
也就是说,通过第一请求关键值在第三方代理设备的数据库中查找到第一注册事件信息。
S52,从第一注册事件信息中查找与第一请求数据对应的第一环境标识,并且从至少一个客户端中选择出与第一环境标识相对应的第一客户端。
也就是说,由于第一注册事件信息为第一请求数据与第一环境标识之间的对应关系,因此,首先通过第一请求关键值找到与第一返回数据对应的第一请求数据,然后在基于第一注册事件信息找到与第一请求数据对应的第一环境标识,最后由于第一环境标识能够对应目标客户端,因此可以从至少一个客户端中选择出与第一环境标识相对应的第一客户端。
S6,向第一客户端发送第一返回数据。
可以理解的是,第一返回数据是供应商设备根据第一请求数据生成的。
也就是说,在选择出第一客户端之后需要将第一返回数据转发到第一客户端,具体的转发过程如下S61-S62所示。
S61,在域名配置表中查找与第一环境标识相对应的目标域名。
可以理解的是,相关技术中转发数据都是通过域名访问具体服务器,域名相当于服务器集群别名,当两个服务器集群别名相同时,导致通过域名访问产生了问题,本申请通过计算机访问原理,绕过域名限制,域名的作用都是在一个网络内,两个相同域名的服务器集群,必然存在两个网络,网络是有访问接口的。当匹配到环境标识,以及域名后,可以在此基础上获取运行环境所对应的网络接口。将请求转发到网络接口,再由网络接口解析域名发往具体客户端。
也就是说,由于域名配置表中存储有与多个环境标识相对应的访问域名,因此,在域名配置表中查找与第一环境标识相对应的目标域名。
S62,基于目标域名访问所以第一客户端的接口,并且通过接口将第一返回数据发送到第一客户端。
也就是说,在获得目标域名之后,可以访问具体服务器,然后通过解析目标域名获得第一客户端的接口,之后通过接口访问第一客户端并且将第一返回数据发送到第一客户端。
上文描述了本申请提供的一种数据转发的方法的实施过程,下文将描述本申请提供的一种数据转发的方法的具体实施例。
相关技术中,随着公司业务的范围不断的扩大,常常会接入供应商设备来支持公司的某个业务线的逻辑,但由于每个公司的软件开发周期各不相同,在与供应商设备对接中,对接的供应商设备内部的运行环境大多都各不相同,存在个别供应商设备只有一个运行环境的情况,在处理回调类接口时,暴漏出各种运行环境对应问题,影响了数据转发的效率和准确率。
也就是说,每个软件的生命周期在每个公司的形态可能是不同的,公司会根据自身实际情况使用不同的运行环境,毕竟每增加一套运行环境,需要大量的资金来支持。但在对接供应商设备的运行环境时,需要编写路由映射执行逻辑,给数据转发的过程带来了额外的工作。
因此,本申请的一些实施例可以减轻客户端开发者的工作量,通过本申请的一些实施例借助简单的配置即可与供应商设备完美的进行对接,路由映射等公用逻辑抽取到第三方代理设备中,实现客户端与供应商二者的解耦,实现客户端对接供应商设备的统一化。
需要说明的是,回调类接口是在请求供应商设备响应请求数据时,例如下单,供应商设备不会按照同步的方式返回处理结果,采取策略大多数是通过异步方式告诉结果。例如,首先客户端将请求发送到供应商设备,供应商设备收到请求后立即断开连接,在处理完成后通过回调的方式访问对接的客户端,发送与该请求对应的返回数据。
正常对接过程是在开发阶段,客户端与供应商设备双方在对接时,需要使用双方的开发环境,开发阶段完成后,进入测试阶段,需要更改使用测试环境来进行联调测试,每个阶段更换各自对应环境。
特殊对接过程为某个供应商设备只存在一套运行环境,不区分生产环境、测试环境,但客户端是存在多环境的,导致供应商设备仅存一个运行环境对应客户端的多个运行环境,导致每个客户端需要维护一套映射环境功能,来保证例如对接开发环境的回调最终是由开发环境处理,测试环境的回调最终是由测试环境处理。
因此,本申请主要针对上述场景,改变原来的交互逻辑,在客户端与供应商设备之间增加一个第三方代理设备,负责调度双方,将通用功能抽取到第三方代理设备中,降低客户端与供应商设备由于运行环境导致的重复以及复杂的工作,提升数据转发的效率。
可以理解的是,第三方代理设备相当于数据传输的中介,供应商设备与客户端之间的交互不再是直接进行的,而是通过第三方代理设备在供应商设备与客户端之间进行信息传输,这样的模式极大的降低了供应商设备以及客户端的操作步骤。也就是说,使用第三方代理设备作为供应商设备与客户端之间的桥梁,将环境映射功能封装到第三方代理设备,供应商设备和客户端仅需要关注自身业务即可,不需要每个客户端都自我维护映射关系,大大的降低了客户端在对接新的供应商设备时的复杂度和工作量。且使用第三方代理设备能够使客户端和供应商设备解耦合,封装通用功能,使得客户端大部分重复工作得以释放。
具体的,如图4所示,至少一个客户端包括客户端111(即客户端A)以及客户端112(即客户端B),客户端A向第三方代理设备120发送了请求数据A和环境标识A,第三方代理设备120将请求数据A进行注册获得事件编号,并且将事件编号与环境标识A对应的存储在数据库410中,之后将请求数据A发送到供应商设备130。
接着,如图5所示,供应商设备130根据请求数据A生成返回数据A之后,将返回数据A发送到第三方代理设备120,并且第三方代理设备120通过事件编号从数据库中获取与返回数据A对应的环境标识A,进而从至少一个客户端中选择出客户端A(即目标客户端),之后将返回数据A发送到客户端A中。
因此,本申请与现有技术不同点在于,如果多个运行环境对应的客户端的域名地址一致,现有技术无法正确的转发请求,需要在代码中植入特殊的转发逻辑来支撑多个运行环境。
相关技术中,随着客户端接入的供应商设备日益增多,各场景系统中都需要单独维护每个供应商设备的请求和回调API,给开发工作增加了相当大的重复工作,而且由于不是每个供应商设备都有测试环境,为避免每个客户端都各自维护一套环境路由映射逻辑,第三方代理设备在这个背景下应运而生。
第三方代理设备作为微服务架构中重要组件,是请求供应商设备与供应商回调API流量的核心入口,用于统一处理和业务相关的请求,可有效解决海量请求,恶意访问等问题,以保障业务安全性与稳定性。
如图6所示,第三方代理设备的内部架构包括数据转发模块610和数据管理模块620。数据转发模块610用于承载并处理海量数据,管理员通过配置路由规则后,数据转发模块610将根据预设规则将请求转发至上游服务,即供应商设备。数据管理模块620用于管理第三方代理设备,通过访问其暴露的API接口以实现对路由规则定义、事件注册、证书、账号等资源的管理。
具体的,数据转发模块610用于对请求数据进行监控、记录日志、验证安全、用户认证、限流限速以及路由匹配。在本申请的场景下,转发的请求数据包括个人消费和对公消费两种类型的数据。
也就是说,数据转发模块610用于接收并处理客户端发送请求数据,当请求数据进入时,将根据预设路由规则进行匹配,匹配到的请求数据将被数据转发模块610转发至对应上游服务,在此过程中,代理供应商系统有能力根据预设规则中不同过滤器的配置,使用过滤器对请求数据从进入到离开的各个阶段进行操作。例如请求数据可能会经历过身份认证(避免重放攻击,参数篡改等)、请求审计(请求来源信息,上游处理时长等)、路由处理(根据预设规则获取最终上游服务地址)、请求转发(代理供应商系统将请求转发至上游目标节点)、请求响应(上游处理完成,将结果返回给调用方)等几个步骤。
具体的,数据管理模块620用于链路追踪、监控和日志收集,并且用于账号管理、验签管理、统计日志、路由管理以及数据缓存。同时,数据管理模块620还包括了管理员用于配置参数的工作区,并且支持多集群以及多环境,即多种运行环境。
也就是说,数据管理模块620包含了管理接口(Manager API)与配置中心,管理员在访问并操作控制台时,控制台将调用Manager API下发配置到缓存中,配置将在数据管理模块620实时生效。例如:管理员可增加一条路由,并配置限速过滤器,当触发到限速阈值后,第三方代理设备120将暂时阻止后续匹配到该路由的请求进入。
如图7所示,作为本申请一具体实施例,一种数据方法的方法的具体实施例包括如下步骤:
S1,首先客户端111(即客户端A)和客户端112(即客户端B)发起请求(例如,下单购买机票),并且携带环境标识和请求ID,也就是说,客户端A和客户端B向第三方代理设备120发送请求数据和环境标识。
S2,请求数据和环境标识到达第三方代理设备120进行注册事件,第三方代理设备120将事件信息保存在数据库中。
S3,发送请求数据到供应商设备130,以请求供应商设备130进行下单操作。可以理解的是,给供应商设备130发起请求操作结束。
S4,等待供应商设备130异步回调请求。
S5,接收到供应商设备130回调请求后,根据供应商设备130的类型,创建回调管道。管道会创建一些过滤器。
S6,管道创建完毕后,执行管道携带的过滤链。得到请求ID关键字。
具体的,接收到供应商设备130的返回数据之后,将返回数据输入到回调请求入口,接着经过认证验证过滤器、解析请求参数过滤器、解码/加密过滤器、数据转换过滤器、解析请求关键值过滤器、路由解析过滤器。其中,路由解析过滤器访问数据库410,获得请求ID关键字。
S7,根据请求ID关键字,获取事件来源,即获取事件产生环境。
也就是说,基于请求ID关键字在数据库410中查找环境标识,并且由数据库410返回环境标识。
S8,获取到产生环境,则匹配路由规则。选举路由目标域名,进行服务转发。
也就是说,请求转发过滤器基于环境标识将返回数据A发送到客户端A,将返回数据B发送到客户端B。
S9,最终将返回数据转发到对应的客户端中。
具体的,如图8所示,将返回数据转发到对应的客户端中的具体实施步骤包括:S801解析请求关键值,S802根据请求关键值获取环境标识,S803与内网入口域名配置表进行匹配,S804获取与环境标识对应的目标域名,S805基于目标域名访问内网(即客户端A和客户端B所在的内网)接口,S806发起HTTP请求,S807结束。
因此,本申请通过第三方代理设备,完成对供应商设备与客户端的耦合,提取公共处理逻辑到第三方代理设备中。特别是针对单运行环境对应多运行环境对接方式,简化了对接系统的对接工作量,减轻负担的同时,可以让相关人员将省下来时间投入到其他工作内容中。
当供应商设备只有单运行环境,客户端存在多个运行环境,客户端只需要向第三方代理设备提交运行环境对应关系(即各运行环境与域名之间的对应关系)以及配置数据链过滤器。
由于第三方代理设备内部维护了一套稳定的环境映射转发逻辑,客户端的相关人员在提交完配置就不需要在做其他工作,剩下的工作都是由第三方代理设备来做,客户端要做的事情仅仅是发送请求以及等待接收请求,因此能够提升数据转发的效率。
上文描述了本申请的一种数据转发的方法的具体实施例,下文将描述本申请的一种数据转发的装置。
如图9所示,本申请的一些实施例提供一种数据转发的装置900,该装置包括:数据获取模块910、数据发送模块920和数据返回模块930。
数据获取模块910,被配置为获取至少一个客户端发送的请求数据和环境标识,其中,所述环境标识采用不同标识区分多种环境,所述多种环境至少包括生产环境和测试环境,一个客户端对应一个环境标识。
数据发送模块920,被配置为向供应商设备发送所述请求数据,并且接收所述供应商设备根据所述请求数据生成的返回数据。
数据返回模块930,被配置为从所述至少一个客户端中选择出与所述环境标识相对应的目标客户端,并且向所述目标客户端发送所述返回数据。
在本申请的一些实施例中,所述至少一个客户端中包括第一客户端,其中,所述第一客户端为所述至少一个客户端中的任意一个,所述第一客户端发送的所述请求数据包括第一请求数据,所述第一请求数据为所述请求数据中的任意一条,所述第一客户端部署的运行环境为第一运行环境;所述数据获取模块910被配置为:基于所述第一请求数据获得第一注册事件信息,并且存储所述第一注册事件信息,其中,所述第一注册事件信息至少包括所述第一请求数据与第一环境标识之间的对应关系,所述第一环境标识用于表征所述第一运行环境;所述数据返回模块930被配置为:根据所述第一注册事件信息,从所述至少一个客户端中选择出与所述第一环境标识相对应的所述第一客户端;向所述第一客户端发送第一返回数据,其中,所述第一返回数据是所述供应商设备根据所述第一请求数据生成的。
在本申请的一些实施例中,所述数据返回模块930被配置为:解析所述第一返回数据获得第一请求关键值,其中,所述第一请求关键值用于表征所述第一返回数据与第一请求数据之间的对应关系;所述数据返回模块930被配置为:基于所述第一请求关键值查找并获取所述第一注册事件信息;从所述第一注册事件信息中查找与所述第一请求数据对应的第一环境标识,并且从所述至少一个客户端中选择出与所述第一环境标识相对应的所述第一客户端。
在本申请的一些实施例中,所述数据返回模块930被配置为:检测所述第一返回数据,并且确认所述供应商设备为安全设备;对所述第一返回数据进行解密,获得第一解密返回数据;对所述第一解密返回数据的数据格式进行转换,获得第一目标返回数据;所述解析所述第一返回数据获得第一请求关键值,包括:解析所述第一目标返回数据获得所述第一请求关键值。
在本申请的一些实施例中,数据返回模块930被配置为:在域名配置表中查找与所述第一环境标识相对应的目标域名,其中,所述域名配置表中存储有与多个环境标识相对应的访问域名;基于所述目标域名访问所以第一客户端的接口,并且通过所述接口将所述第一返回数据发送到所述第一客户端。
在本申请的一些实施例中,数据获取模块910被配置为:获取当前所述第三方代理设备的通过流量数值;若所述通过流量数值大于预设流量上限,则阻止后续的请求数据进入。
在本申请实施例中,图9所示模块能够实现图1至图8方法实施例中的各个过程。图9中的各个模块的操作和/或功能,分别为了实现图1至图8中的方法实施例中的相应流程。具体可参见上述方法实施例中的描述,为避免重复,此处适当省略详细描述。
如图10所示,本申请实施例提供一种电子设备100,包括:处理器101、存储器102和总线103,所述处理器通过所述总线与所述存储器相连,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,用于实现如上述所有实施例中任一项所述的方法,具体可参见上述方法实施例中的描述,为避免重复,此处适当省略详细描述。
其中,总线用于实现这些组件直接的连接通信。其中,本申请实施例中处理器可以是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。存储器中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,可以执行上述实施例中所述的方法。
可以理解,图10所示的结构仅为示意,还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。图10中所示的各组件可以采用硬件、软件或其组合实现。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被服务器执行时实现上述所有实施方式中任一所述的方法,具体可参见上述方法实施例中的描述,为避免重复,此处适当省略详细描述。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种数据转发的方法,其特征在于,应用于第三方代理设备,所述方法包括:
获取至少一个客户端发送的请求数据和环境标识,其中,所述环境标识采用不同标识区分多种环境,所述多种环境至少包括生产环境和测试环境,一个客户端对应一个环境标识,所述请求数据用于向供应商设备请求业务查询;
将所述请求数据和所述环境标识进行事件注册操作获得注册事件,其中,所述注册事件包括所述请求数据和所述环境标识之间的对应关系;
向所述供应商设备发送所述请求数据,并且接收所述供应商设备根据所述请求数据生成的返回数据;
根据所述注册事件从所述至少一个客户端中选择出与所述环境标识相对应的目标客户端,并且向所述目标客户端发送所述返回数据,其中,所述返回数据是与所述业务查询相对应的操作所产生的数据。
2.根据权利要求1所述的方法,其特征在于,所述至少一个客户端中包括第一客户端,其中,所述第一客户端为所述至少一个客户端中的任意一个,所述第一客户端发送的所述请求数据包括第一请求数据,所述第一请求数据为所述请求数据中的任意一条,所述第一客户端部署的运行环境为第一运行环境;
在所述获取至少一个客户端发送的请求数据和环境标识之后,所述方法还包括:
基于所述第一请求数据获得第一注册事件信息,并且存储所述第一注册事件信息,其中,所述第一注册事件信息至少包括所述第一请求数据与第一环境标识之间的对应关系,所述第一环境标识用于表征所述第一运行环境;
所述从所述至少一个客户端中选择出与所述环境标识相对应的目标客户端,并且向所述目标客户端发送所述返回数据,包括:
根据所述第一注册事件信息,从所述至少一个客户端中选择出与所述第一环境标识相对应的所述第一客户端;
向所述第一客户端发送第一返回数据,其中,所述第一返回数据是所述供应商设备根据所述第一请求数据生成的。
3.根据权利要求2所述的方法,其特征在于,在所述根据所述第一注册事件信息,从所述至少一个客户端中选择出与所述第一环境标识相对应的所述第一客户端之前,所述方法还包括:
解析所述第一返回数据获得第一请求关键值,其中,所述第一请求关键值用于表征所述第一返回数据与第一请求数据之间的对应关系;
所述根据所述第一注册事件信息,从所述至少一个客户端中选择出与所述第一环境标识相对应的所述第一客户端,包括:
基于所述第一请求关键值查找并获取所述第一注册事件信息;
从所述第一注册事件信息中查找与所述第一请求数据对应的第一环境标识,并且从所述至少一个客户端中选择出与所述第一环境标识相对应的所述第一客户端。
4.根据权利要求3所述的方法,其特征在于,在所述解析所述第一返回数据获得第一请求关键值之前,所述方法还包括:
检测所述第一返回数据,并且确认所述供应商设备为安全设备;
对所述第一返回数据进行解密,获得第一解密返回数据;
对所述第一解密返回数据的数据格式进行转换,获得第一目标返回数据;
所述解析所述第一返回数据获得第一请求关键值,包括:
解析所述第一目标返回数据获得所述第一请求关键值。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述向所述第一客户端发送第一返回数据,包括:
在域名配置表中查找与所述第一环境标识相对应的目标域名,其中,所述域名配置表中存储有与多个环境标识相对应的访问域名;
基于所述目标域名访问所以第一客户端的接口,并且通过所述接口将所述第一返回数据发送到所述第一客户端。
6.根据权利要求1所述的方法,其特征在于,在所述获取至少一个客户端发送的请求数据和环境标识之前,所述方法还包括:
获取当前所述第三方代理设备的通过流量数值;
若所述通过流量数值大于预设流量上限,则阻止后续的请求数据进入。
7.一种数据转发的系统,其特征在于,所述系统包括:
至少一个客户端,被配置为发送请求数据和环境标识;
第三方代理设备,被配置为获取至少一个客户端发送的请求数据和环境标识,并且根据所述请求数据和环境标识执行如权利要求1-6任一项所述的方法;
供应商设备,被配置为接收所述第三方代理设备发送的所述请求数据,根据所述请求数据生成返回数据,并且将所述返回数据发送到所述第三方代理设备。
8.一种数据转发的装置,其特征在于,所述装置包括:
数据获取模块,被配置为获取至少一个客户端发送的请求数据和环境标识,其中,所述环境标识采用不同标识区分多种环境,所述多种环境至少包括生产环境和测试环境,一个客户端对应一个环境标识,所述请求数据用于向供应商设备请求业务查询;
数据发送模块,被配置为将所述请求数据和所述环境标识进行事件注册操作获得注册事件,其中,所述注册事件包括所述请求数据和所述环境标识之间的对应关系;
向所述供应商设备发送所述请求数据,并且接收所述供应商设备根据所述请求数据生成的返回数据;
数据返回模块,被配置为根据所述注册事件从所述至少一个客户端中选择出与所述环境标识相对应的目标客户端,并且向所述目标客户端发送所述返回数据,其中,所述返回数据是与所述业务查询相对应的操作所产生的数据。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线;
所述处理器通过所述总线与所述存储器相连,所述存储器存储有计算机程序,所述计算机程序由所述处理器执行时可实现如权利要求1-6任一项所述方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被执行时可实现如权利要求1-6任一项所述方法。
CN202210975706.4A 2022-08-15 2022-08-15 一种数据转发的方法、装置、系统、电子设备及介质 Active CN115334150B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210975706.4A CN115334150B (zh) 2022-08-15 2022-08-15 一种数据转发的方法、装置、系统、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210975706.4A CN115334150B (zh) 2022-08-15 2022-08-15 一种数据转发的方法、装置、系统、电子设备及介质

Publications (2)

Publication Number Publication Date
CN115334150A CN115334150A (zh) 2022-11-11
CN115334150B true CN115334150B (zh) 2024-01-19

Family

ID=83924036

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210975706.4A Active CN115334150B (zh) 2022-08-15 2022-08-15 一种数据转发的方法、装置、系统、电子设备及介质

Country Status (1)

Country Link
CN (1) CN115334150B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115842749A (zh) * 2022-11-24 2023-03-24 中电信数智科技有限公司 一种测试环境的切换方法、装置及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019129154A1 (zh) * 2017-12-27 2019-07-04 中兴通讯股份有限公司 业务请求处理方法及装置
CN110022260A (zh) * 2019-02-02 2019-07-16 阿里巴巴集团控股有限公司 一种跨环境回执消息处理方法及系统
WO2021057348A1 (zh) * 2019-09-25 2021-04-01 中兴通讯股份有限公司 一种服务器安全防御方法及系统、通信设备、存储介质
CN113364818A (zh) * 2020-03-03 2021-09-07 北京搜狗科技发展有限公司 一种数据处理方法、装置和电子设备
CN113608994A (zh) * 2021-06-30 2021-11-05 天津五八到家货运服务有限公司 请求处理方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019129154A1 (zh) * 2017-12-27 2019-07-04 中兴通讯股份有限公司 业务请求处理方法及装置
CN110022260A (zh) * 2019-02-02 2019-07-16 阿里巴巴集团控股有限公司 一种跨环境回执消息处理方法及系统
WO2021057348A1 (zh) * 2019-09-25 2021-04-01 中兴通讯股份有限公司 一种服务器安全防御方法及系统、通信设备、存储介质
CN113364818A (zh) * 2020-03-03 2021-09-07 北京搜狗科技发展有限公司 一种数据处理方法、装置和电子设备
CN113608994A (zh) * 2021-06-30 2021-11-05 天津五八到家货运服务有限公司 请求处理方法及系统

Also Published As

Publication number Publication date
CN115334150A (zh) 2022-11-11

Similar Documents

Publication Publication Date Title
US8533799B2 (en) Service integration platform system and method for internet services
CN111062024B (zh) 一种应用登录方法和装置
CN112202705A (zh) 一种数字验签生成和校验方法、系统
KR102417742B1 (ko) Api 데이터 수집시스템 및 그에 관한 방법
CN108063833B (zh) Http dns解析报文处理方法及装置
CN111224834B (zh) 模拟测试方法、装置、服务器及存储介质
Patel et al. A review and future research directions of secure and trustworthy mobile agent‐based e‐marketplace systems
CN108769743B (zh) 一种视频播放控制方法、系统、节点和计算机存储介质
CN115334150B (zh) 一种数据转发的方法、装置、系统、电子设备及介质
CN111182537A (zh) 移动应用的网络接入方法、装置及系统
CN110611725B (zh) 节点访问方法、装置、计算机设备和存储介质
CN113872940B (zh) 基于NC-Link的访问控制方法、装置及设备
CN112541828B (zh) 实现开放证券管理及开放证券api接入控制的系统、方法、装置、处理器及其存储介质
KR101395830B1 (ko) 프록시를 경유한 접속 세션정보 확인시스템과 이를 기반으로 한 세션정보 확인방법
CN113129002A (zh) 一种数据处理方法以及设备
CN116737598A (zh) 页面调试方法、装置、电子设备和计算机可读介质
CN111597060A (zh) 数据调用方法、装置、计算机设备和存储介质
CN111625837A (zh) 识别系统漏洞的方法、装置和服务器
CN113778709B (zh) 接口调用方法、装置、服务器及存储介质
CN113709136B (zh) 一种访问请求验证方法和装置
CN115774584A (zh) 数据处理方法、装置、电子设备和存储介质
CN114416169A (zh) 基于微前端的数据处理方法、介质、装置和计算设备
CN111385293B (zh) 一种网络风险检测方法和装置
CN113609516A (zh) 基于异常用户的信息生成方法、装置、电子设备和介质
CN113992734A (zh) 会话连接方法及装置、设备

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
GR01 Patent grant
GR01 Patent grant