CN110430275B - 数据处理方法、装置、系统、计算设备以及介质 - Google Patents

数据处理方法、装置、系统、计算设备以及介质 Download PDF

Info

Publication number
CN110430275B
CN110430275B CN201910738426.XA CN201910738426A CN110430275B CN 110430275 B CN110430275 B CN 110430275B CN 201910738426 A CN201910738426 A CN 201910738426A CN 110430275 B CN110430275 B CN 110430275B
Authority
CN
China
Prior art keywords
access request
request
service
processing
node
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
CN201910738426.XA
Other languages
English (en)
Other versions
CN110430275A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201910738426.XA priority Critical patent/CN110430275B/zh
Publication of CN110430275A publication Critical patent/CN110430275A/zh
Application granted granted Critical
Publication of CN110430275B publication Critical patent/CN110430275B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开提供了一种应用于服务节点的数据处理方法,包括:接收访问请求;确定所述访问请求的协议类型,其中,所述协议类型包括第一协议类型和第二协议类型,所述第一协议类型表征所述访问请求为网关设备通过超文本传输协议发送的来自请求终端的请求,所述第二协议类型表征所述访问请求为所述请求终端通过远程过程调用协议发送的请求;响应于确定所述访问请求的协议类型为第一协议类型,利用第一处理方式处理所述访问请求以得到所述请求终端所请求的服务数据;以及响应于确定所述访问请求的协议类型为第二协议类型,利用第二处理方式处理所述访问请求以得到所述请求终端所请求的服务数据。本公开还提供了一种数据处理装置、系统、计算设备、介质。

Description

数据处理方法、装置、系统、计算设备以及介质
技术领域
本公开涉及计算机技术领域,特别是涉及一种应用于服务节点的数据处理方法、一种应用于网关设备的数据处理方法、一种应用于服务节点的数据处理装置、一种应用于网关设备的数据处理装置、一种数据处理系统、一种计算设备以及一种计算机可读存储介质。
背景技术
目前的分布式架构,包括多个提供应用服务的服务节点,分布式架构中的服务节点仅能处理请求终端(例如消费方)通过远程过程调用协议(RPC)发送的请求,当请求终端通过超文本传输协、议(HTTP)发送请求时,需要通过网关设备将HTTP请求转换为RPC请求,造成网关设备压力大。网关设备目前仍存在如下的问题。
(1)网络连接的消耗大
分布式架构中通过网关设备调用服务节点的调用量大,即服务节点承载着巨大的调用压力。随着服务节点提供的应用服务数量不断增加,应用服务的调用量也不断增加。作为服务调用方的请求终端(例如消费方),每个服务节点需要与所有网关设备保持连接,网关设备的连接负荷大。
(2)对注册节点的压力大
网关设备与注册节点交互过多,例如网关设备通过与注册节点长连接,动态监听注册节点的加载变化。例如网关设备向注册节点订阅所需的服务,网关设备作为消费方启动时,需要从注册节点中拉取服务节点列表缓存至内存中;当有服务节点上下线或不可用时,基于注册节点的订阅通知机制推送全量的服务节点地址列表给网关设备,增大注册节点的负荷。
(3)使用具有局限性
网关设备作为RPC协议消费方,可以将服务节点的接口信息写入注册节点的内存,以动态生成服务节点存根,占用注册节点的内存。
发明内容
本公开的一个方面提供了一种应用于服务节点的数据处理方法,包括:接收访问请求,确定所述访问请求的协议类型,其中,所述协议类型包括第一协议类型和第二协议类型,所述第一协议类型表征所述访问请求为网关设备通过超文本传输协议发送的来自请求终端的请求,所述第二协议类型表征所述访问请求为所述请求终端通过远程过程调用协议发送的请求,响应于确定所述访问请求的协议类型为第一协议类型,利用第一处理方式处理所述访问请求以得到所述请求终端所请求的服务数据,响应于确定所述访问请求的协议类型为第二协议类型,利用第二处理方式处理所述防问请求以得到所述请求终端所请求的服务数据。
可选地,上述访问请求包括第一接口信息,所述服务节点具有地址数据和第二接口信息,所述方法还包括:将所述地址数据和所述第二接口信息注册到注册节点,以使所述网关设备或者所述请求终端基于所述第一接口信息和所述第二接口信息确定所述访问请求针对的所述服务节点,并使所述网关设备或者所述请求终端基于所述地址数据将所述访问请求发送至所述服务节点。
可选地,上述利用第一处理方式处理所述访问请求以得到所述请求终端所请求的服务数据,包括:通过超文本传输协议处理链对所述访问请求进行反序列化处理,得到第一对象信息,基于所述第一对象信息获取所述请求终端所请求的第一请求数据,对所述第一请求数据进行序列化处理得到所述服务数据。
可选地,上述利用第二处理方式处理所述访问请求以得到所述请求终端所请求的服务数据,包括:通过远程过程调用协议处理链对所述访问请求进行反序列化处理,得到第二对象信息,基于所述第二对象信息获取所述请求终端所请求的第二请求数据,对所述第二请求数据进行序列化处理得到所述服务数据。
本公开的另一个方面提供了一种应用于网关设备的数据处理方法,包括:接收来自请求终端的访问请求,所述访问请求为所述请求终端通过超文本传输协议发送的请求,确定所述访问请求所针对的至少一个服务节点,确定所述至少一个服务节点中的目标服务节点,将所述访问请求发送至所述目标服务节点,以使所述目标服务节点基于所述超文本传输协议确定目标处理方式,并使所述目标服务节点基于所述目标处理方式处理所述访问请求以得到所述请求终端所请求的服务数据。
可选地,上述确定所述访问请求所针对的至少一个服务节点,包括:获取所述访问请求中的第一接口信息,将所述第一接口信息发送至注册节点中,以使所述注册节点基于所述第一接口信息和第二接口信息从多个服务节点中确定所述至少一个服务节点,其中所述注册节点中包括所述多个服务节点的第二接口信息和所述多个服务节点的地址数据,接收来自所述注册节点的所述至少一个服务节点的地址数据,以便所述网关设备基于所述至少一个服务节点的地址数据将所述访问请求发送至所述目标服务节点。
可选地,上述方法还包括:当所述多个服务节点中出现不可用服务节点时,与所述注册节点建立长连接,接收来自所述注册节点的更新后的地址数据,所述更新后的地址数据是通过从所述多个服务节点的地址数据去除所述不可用服务节点的地址数据来得到的。
可选地,上述确定所述至少一个服务节点中的目标服务节点,包括:基于负载均衡算法,从所述至少一个服务节点中确定所述目标服务节点。
本公开的另一个方面提供了一种应用于服务节点的数据处理装置,包括:第一接收模块、第一确定模块、第一处理模块以及第二处理模块。其中,第一接收模块接收访问请求,第一确定模块确定所述访问请求的协议类型,其中,所述协议类型包括第一协议类型和第二协议类型,所述第一协议类型表征所述访问请求为网关设备通过超文本传输协议发送的来自请求终端的请求,所述第二协议类型表征所述访问请求为所述请求终端通过远程过程调用协议发送的请求,第一处理模块响应于确定所述访问请求的协议类型为第一协议类型,利用第一处理方式处理所述访问请求以得到所述请求终端所请求的服务数据,第二处理模块响应于确定所述访问请求的协议类型为第二协议类型,利用第二处理方式处理所述访问请求以得到所述请求终端所请求的服务数据。
可选地,上述访问请求包括第一接口信息,所述服务节点具有地址数据和第二接口信息,所述装置还包括:注册模块,将所述地址数据和所述第二接口信息注册到注册节点,以使所述网关设备或者所述请求终端基于所述第一接口信息和所述第二接口信息确定所述访问请求针对的所述服务节点,并使所述网关设备或者所述请求终端基于所述地址数据将所述访问请求发送至所述服务节点。
可选地,上述第一处理模块包括:第一处理子模块、第一获取子模块以及第二处理子模块。其中,第一处理子模块通过超文本传输协议处理链对所述访问请求进行反序列化处理,得到第一对象信息,第一获取子模块基于所述第一对象信息获取所述请求终端所请求的第一请求数据,第二处理子模块对所述第一请求数据进行序列化处理得到所述服务数据。
可选地,上述第二处理模块包括:第三处理子模块、第二获取子模块以及第四处理子模块。其中,第三处理子模块通过远程过程调用协议处理链对所述访问请求进行反序列化处理,得到第二对象信息,第二获取子模块基于所述第二对象信息获取所述请求终端所请求的第二请求数据,第四处理子模块对所述第二请求数据进行序列化处理得到所述服务数据。
本公开的另一方面提供了一种应用于网关设备的数据处理装置,包括:第二接收模块、第二确定模块、第三确定模块以及发送模块。其中,第二接收模块接收来自请求终端的访问请求,所述访问请求为所述请求终端通过超文本传输协议发送的请求,第二确定模块确定所述访问请求所针对的至少一个服务节点,第三确定模块确定所述至少一个服务节点中的目标服务节点,发送模块将所述访问请求发送至所述目标服务节点,以使所述目标服务节点基于所述超文本传输协议确定目标处理方式,并使所述目标服务节点基于所述目标处理方式处理所述访问请求以得到所述请求终端所请求的服务数据。
可选地,上述第二确定模块包括:第三获取子模块、注册子模块以及接收子模块。其中,第三获取子模块获取所述访问请求中的第一接口信息,注册子模块将所述第一接口信息发送至注册节点中,以使所述注册节点基于所述第一接口信息和第二接口信息从多个服务节点中确定所述至少一个服务节点,其中所述注册节点中包括所述多个服务节点的第二接口信息和所述多个服务节点的地址数据,接收子模块接收来自所述注册节点的所述至少一个服务节点的地址数据,以便所述网关设备基于所述至少一个服务节点的地址数据将所述访问请求发送至所述目标服务节点。
可选地,上述装置还包括:建立模块以及第三接收模块。其中,建立模块当所述多个服务节点中出现不可用服务节点时,与所述注册节点建立长连接,第三接收模块接收来自所述注册节点的更新后的地址数据,所述更新后的地址数据是通过从所述多个服务节点的地址数据去除所述不可用服务节点的地址数据来得到的。
可选地,上述确定所述至少一个服务节点中的目标服务节点,包括:基于负载均衡算法,从所述至少一个服务节点中确定所述目标服务节点。
本公开的另一方面提供了一种计算设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
本公开的另一方面提供了一种非易失性可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的数据处理方法和数据处理装置的应用场景;
图2示意性示出了根据本公开实施例的应用于服务节点的数据处理方法的流程图;
图3示意性示出了根据本公开实施例的利用第一处理方式处理访问请求的流程图;
图4示意性示出了根据本公开实施例的利用第二处理方式处理访问请求的流程图;
图5示意性示出了根据本公开另一实施例的应用于服务节点的数据处理方法的流程图;
图6示意性示出了根据本公开实施例的应用于网关设备的数据处理方法的流程图;
图7示意性示出了根据本公开实施例的确定至少一个服务节点的流程图;
图8示意性示出了根据本公开另一实施例的应用于网关设备的数据处理方法的流程图;
图9示意性示出了根据本公开实施例的一种示例的系统结构图;
图10示意性示出了根据本公开实施例的一种示例的请求接入装置内部结构示意图;
图11示意性示出了根据本公开实施例的一种示例的网关设备内部结构示意图;
图12示意性示出了根据本公开实施例的一种示例的服务节点内部结构示意图;
图13示意性示出了根据本公开实施例的一种示例的注册节点内部结构示意图;
图14示意性示出了根据本公开实施例的一种访问请求处理方法的流程图;
图15示意性示出了根据本公开实施例的一种由网关设备和服务节点执行的处理方法的流程图;
图16示意性示出了根据本公开实施例的应用于服务节点的数据处理装置的框图;
图17示意性示出了根据本公开实施例的第一处理模块的框图;
图18示意性示出了根据本公开实施例的第二处理模块的框图;
图19示意性示出了根据本公开另一实施例的应用于服务节点的数据处理装置的框图;
图20示意性示出了根据本公开实施例的应用于网关设备的数据处理装置的框图;
图21示意性示出了根据本公开实施例的第二确定模块的框图;
图22示意性示出了根据本公开另一实施例的应用于网关设备的数据处理装置的框图;以及
图23示意性示出了根据本公开实施例的数据处理的计算机系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程控制装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
本公开的实施例提供了一种应用于服务节点的数据处理方法,包括:接收访问请求,确定访问请求的协议类型,其中,协议类型包括第一协议类型和第二协议类型,第一协议类型表征访问请求为网关设备通过超文本传输协议发送的来自请求终端的请求,第二协议类型表征访问请求为请求终端通过远程过程调用协议发送的请求,响应于确定访问请求的协议类型为第一协议类型,利用第一处理方式处理访问请求以得到请求终端所请求的服务数据,响应于确定访问请求的协议类型为第二协议类型,利用第二处理方式处理访问请求以得到请求终端所请求的服务数据。
图1示意性示出了根据本公开实施例的数据处理方法和数据处理装置的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景100例如可以包括服务节点110、请求终端120和网关设备130。
其中,服务节点110例如可以是提供应用服务的节点,服务节点110例如可以是服务器、服务器集群等等。请求终端120例如可以调用服务节点110所提供的应用服务中的服务数据。
其中,当请求终端120通过超文本传输协议(HTTP)发送访问请求时(以下通过超文本传输协议(HTTP)发送的访问请求,简称为HTTP访问请求),可以通过网关设备130将HTTP访问请求转发至服务节点110,并由服务节点110通过超文本传输协议处理链处理该HTTP访问请求,得到请求终端120所需的服务数据140,并将服务数据140反馈给请求终端120。
或者,当请求终端120通过远程过程调用协议(RPC)发送访问请求时(以下通过远程过程调用协议(RPC)发送的访问请求,简称为RPC访问请求),请求终端120可以将RPC访问请求发送至服务节点110,并由服务节点110通过远程过程调用协议处理链处理该RPC访问请求,得到请求终端120所需的服务数据150,并将服务数据150反馈给请求终端120。
下面结合图1应用场景,参考图2~图8来描述根据本公开示例性实施方式的数据处理方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
图2示意性示出了根据本公开实施例的应用于服务节点的数据处理方法的流程图。
如图2所示,该方法包括操作S210~S240。
在操作S210,接收访问请求。
根据本公开实施例,访问请求例如可以是来自请求终端的访问请求,或者来自网关设备转发的访问请求。其中,该访问请求用于访问服务节点所提供的服务数据,该服务节点例如为分布式架构中的服务节点。
在操作S220,确定访问请求的协议类型,其中,协议类型包括第一协议类型和第二协议类型,第一协议类型表征访问请求为网关设备通过超文本传输协议发送的来自请求终端的请求,第二协议类型表征访问请求为请求终端通过远程过程调用协议发送的请求。
根据本公开实施例,当访问请求是网关设备转发来自请求终端的通过超文本传输协议发送的请求时,该访问请求的类型为第一协议类型(HTTP类型),确定该访问请求为HTTP访问请求。当访问请求是请求终端通过远程过程调用协议发送的请求时,该访问请求的类型为第二协议类型(RPC类型),则定该访问请求为RPC访问请求。
在操作S230,响应于确定访问请求的协议类型为第一协议类型,利用第一处理方式处理访问请求以得到请求终端所请求的服务数据。
根据本公开实施例,第一处理方式例如包括通过超文本传输协议处理链处理访问请求。当访问请求为HTTP访问请求时,服务节点通过超文本传输协议处理链处理访问请求以得到请求终端所请求的服务数据。其中,通过超文本传输协议处理链处理访问请求的具体过程如下参考图3中描述。
在操作S240,响应于确定访问请求的协议类型为第二协议类型,利用第二处理方式处理访问请求以得到请求终端所请求的服务数据。
根据本公开实施例,第二处理方式例如包括通过远程过程调用协议处理链处理访问请求。当访问请求为RPC访问请求时,服务节点通过远程过程调用协议处理链处理访问请求以得到请求终端所请求的服务数据。其中,通过远程过程调用协议处理链处理访问请求的具体过程如下参考图4中描述。
本公开实施例涉及同端口双协议的分布式服务调用方法。即,分布式架构中的服务节点通过一个端口可接收两种协议的访问请求,并通过两种处理方式分别处理该两种协议的访问请求。例如,服务节点能够处理HTTP访问请求和处理RPC访问请求,使得分布式服务调用的效率得到提升。另外,当访问请求为HTTP访问请求时,只需网关设备将该HTTP访问请求转发至服务节点中进行处理,即,无需网关设备将HTTP访问请求转换为RPC访问请求,网关设备仅作为转发HTTP访问请求的设备,缓解了网关设备的压力。
图3示意性示出了根据本公开实施例的利用第一处理方式处理访问请求的流程图。
如图3所示,操作S230包括操作S231~S233。
在操作S231,通过超文本传输协议处理链对访问请求进行反序列化处理,得到第一对象信息。
根据本公开实施例,由于访问请求一般均为字符串,服务节点一般是根据对象调用服务数据。因此,当服务节点接收到访问请求时,需要将访问请求处理成相应的对象。例如,当访问请求为HTTP访问请求时,可以对HTTP访问请求进行反序列化处理得到第一对象信息,第一对象信息例如为java对象。
在操作S232,基于第一对象信息获取请求终端所请求的第一请求数据。
其后,服务器可以根据java对象调用与java对应的第一请求数据,该第一请求数据例如也为java对象。
在操作S233,对第一请求数据进行序列化处理得到服务数据。
根据本公开实施例,例如第一请求数据为java对象,在将第一请求数据反馈给请求终端之前,可以对第一请求数据进行序列化处理得到相应的字符串,并将处理后得到的字符串作为服务数据反馈给请求终端。
图4示意性示出了根据本公开实施例的利用第二处理方式处理访问请求的流程图。
如图4所示,操作S240包括操作S241~S243。
在操作S241,通过远程过程调用协议处理链对访问请求进行反序列化处理,得到第二对象信息。
例如,当访问请求为RPC访问请求时,可以对RPC访问请求进行反序列化处理得到第二对象信息,第二对象信息例如为java对象。
在操作S242,基于第二对象信息获取请求终端所请求的第二请求数据。
其后,服务器可以根据java对象调用与java对应的第二请求数据,该第二请求数据例如也为java对象。
在操作S243,对第二请求数据进行序列化处理得到服务数据。
根据本公开实施例,例如第二请求数据为java对象,在将第二请求数据反馈给请求终端之前,可以对第二请求数据进行序列化处理得到相应的字符串,并将处理后得到的字符串作为服务数据反馈给请求终端。
图5示意性示出了根据本公开另一实施例的应用于服务节点的数据处理方法的流程图。
如图5所示,该方法包括操作S210~S240以及操作S510。其中,操作S210~S240与上参考图2描述的操作相同或类似,在此不再赘述。
根据本公开实施例,访问请求包括第一接口信息,服务节点具有地址数据和第二接口信息。
在操作S510,将地址数据和第二接口信息注册到注册节点,以使网关设备或者请求终端基于第一接口信息和第二接口信息确定访问请求针对的服务节点,并使网关设备或者请求终端基于地址数据将访问请求发送至服务节点。
根据本公开实施例,分布式架构中例如包括多个服务节点。以服务节点1、服务节点2以及服务节点3为例,每个服务节点例如均包括地址数据和第二接口信息。其中,地址数据可以是服务节点的IP地址或MAC地址等等,第二接口信息例如可以是服务节点所提供服务的名称。例如,服务节点1的地址数据为地址1、第二接口信息为服务a,服务节点2的地址数据为地址2、第二接口信息为服务a(服务节点2和服务节点1例如提供相同的服务2),服务节点3的地址数据为地址3、第二接口信息为服务b。
其中,每个服务节点均把自身的地址数据和第二接口信息注册到注册节点中。注册节点可以根据访问请求中的第一接口信息将包括多个服务节点中的至少一个服务节点的地址数据的地址列表发送给网关设备或者请求终端,便于网关设备或者请求终端向相应的服务节点发送访问请求。
例如,当请求终端需要请求服务节点提供的关于服务a的服务数据时,网关设备可以向提供服务a的服务节点发送HTTP访问请求。具体地,该HTTP访问请求中例如包括第一接口信息,第一接口信息例如包括HTTP访问请求所针对的服务名称,例如当HTTP访问请求所针对的服务名称为服务a时,第一接口信息可以为服务a,该服务a例如由服务节点1或者服务节点2提供。注册节点可以将包括服务节点1和服务节点2的地址数据的地址列表发送给网关设备,网关设备例如根据负载均衡算法从地址列表中的地址1和地址2中选择一个地址,例如选择负载较小的服务节点1对应的地址1,之后网关设备可以基于地址1向服务节点1发送HTTP访问请求。
图6示意性示出了根据本公开实施例的应用于网关设备的数据处理方法的流程图。
如图6所示,该方法包括操作S610~S640。
在操作S610,接收来自请求终端的访问请求,访问请求为请求终端通过超文本传输协议发送的请求。
根据本公开实施例,网关设备可以接收来自请求终端通过超文本传输协议发送的HTTP访问请求。其中,该访问请求用于访问分布式架构中的服务节点所提供的服务数据。
在操作S620,确定访问请求所针对的至少一个服务节点。
在网关设备接收到HTTP访问请求后,可以确定HTTP访问请求所针对的至少一个服务节点。基于上述操作S510的举例,例如HTTP访问请求所针对的至少一个服务节点为服务节点1和服务节点2。其中,操作S620具体的流程如下参考图7描述。
在操作S630,确定至少一个服务节点中的目标服务节点。
例如,网关设备可以基于负载均衡算法,从至少一个服务节点中确定目标服务节点。例如,服务节点1和服务节点2中负载较小的服务节点为服务节点1,则可以将服务节点1作为目标服务节点。
在操作S640,将访问请求发送至目标服务节点,以使目标服务节点基于超文本传输协议确定目标处理方式,并使目标服务节点基于目标处理方式处理访问请求以得到请求终端所请求的服务数据。
根据本公开实施例,当网关设备将HTTP防问请求发送至目标服务节点之后,目标服务节点可以确定HTTP访问请求是通过超文本传输协议发送的,因此,目标服务节点可以通过超文本传输协议处理链处理HTTP访问请求,以获得服务数据。
例如,由于访问请求一般均为字符串,目标服务节点一般是根据对象调用服务数据。因此,当目标服务节点接收到HTTP访问请求时,可以对HTTP访问请求进行反序列化处理得到对象信息,对象信息例如为java对象。其后,服务器可以根据java对象调用与java对应的请求数据,该请求数据例如也为java对象。在目标服务节点将请求数据反馈给请求终端之前,可以对请求数据进行序列化处理得到相应的字符串,并将处理后得到的字符串作为服务数据反馈给请求终端。
图7示意性示出了根据本公开实施例的确定至少一个服务节点的流程图。
如图7所示,操作S620包括操作S621~S623。
在操作S621,获取访问请求中的第一接口信息。
在操作S622,将第一接口信息发送至注册节点中,以使注册节点基于第一接口信息和第二接口信息从多个服务节点中确定至少一个服务节点,其中注册节点中包括多个服务节点的第二接口信息和多个服务节点的地址数据。
在操作S623,接收来自注册节点的至少一个服务节点的地址数据,以便网关设备基于至少一个服务节点的地址数据将访问请求发送至目标服务节点。
根据本公开实施例,分布式架构中例如包括多个服务节点,多个服务节点以服务节点1、服务节点2以及服务节点3为例,每个服务节点例如均包括地址数据和第二接口信息。其中,地址数据可以是服务节点的IP地址或MAC地址等等,第二接口信息例如可以是服务节点所提供服务的名称。例如,服务节点1的地址数据为地址1、第二接口信息为服务a,服务节点2的地址数据为地址2、第二接口信息为服务a,服务节点3的地址数据为地址3、第二接口信息为服务b。
例如,当请求终端需要请求服务节点提供的关于服务a的服务数据时,网关设备可以向提供服务a的服务节点发送HTTP访问请求。具体地,该HTTP访问请求中例如包括第一接口信息,第一接口信息例如包括HTTP访问请求所针对的服务名称,例如当HTTP访问请求所针对的服务名称为服务a时,第一接口信息可以为服务a,该服务a例如由服务节点1或者服务节点2提供。注册节点可以根据第一接口信息将包括服务节点1和服务节点2的地址数据的地址列表发送给网关设备,网关设备例如根据负载均衡算法从地址列表中的地址1和地址2中选择一个地址,例如选择负载较小的服务节点1对应的地址1,该地址1对应的服务节点1作为目标服务节点,之后网关设备可以基于地址1向服务节点1发送HTTP访问请求。
图8示意性示出了根据本公开另一实施例的应用于网关设备的数据处理方法的流程图。
如图8所示,该方法包括操作S610~S640以及操作S810~S820。其中,操作S610~S640与上参考图6描述的操作相同或类似,在此不再赘述。
在操作S810,当多个服务节点中出现不可用服务节点时,与注册节点建立长连接。
在操作S820,接收来自注册节点的更新后的地址数据,更新后的地址数据是通过从多个服务节点的地址数据去除不可用服务节点的地址数据来得到的。
例如,在多个服务节点包括服务节点1、服务节点2、服务节点3的情况下,当服务节点2出现故障或者其他问题导致不可用时,注册节点删除服务节点2的地址数据,得到更新后的地址数据例如包括服务节点1和服务节点3的地址数据。其中,网关设备与注册节点之间可以建立长连接,便于当网关设备需要访问服务节点所提供的服务a时,注册节点可以将服务节点1和服务节点3中提供服务a的地址列表发给网关设备。其中,由于注册节点已经删除服务节点2的地址数据,因此地址列表中例如仅有服务节点1的地址数据。
本公开实施例的网关设备在接收到来自请求终端的HTTP防问请求时,只需将该HTTP访问请求转发至服务节点中进行处理,即,无需网关设备将HTTP访问请求转换为RPC访问请求,网关设备仅作为转发HTTP访问请求的设备,网关设备不需要与所有的服务节点保持长连接,缓解了网关设备的压力。
为了便于理解本公开实施例的技术方案,图9示意性示出了根据本公开实施例的一种示例的系统结构图。本领域技术人员可以理解,图9所示的系统结构图仅为示例,本公开实施例并不局限于此。
如图9所示,本公开的系统结构900包括请求接入装置910、网关设备920、服务节点930、注册节点940。其中,请求接入装置910与网关设备920相连;网关设备920与请求接入装置910、服务节点930、注册节点940相连;服务节点930与网关设备920、注册节点940相连;注册节点940与网关设备920、服务节点930相连。接下来详细解释图9所示根据本公开实施例的各个组件的结构及功能。
请求接入装置910:由硬件设备F5、DNS域名服务器组成,用于接收来自外部的HTTP访问请求,实现负载均衡。请求接入装置910通过心跳检测机制,保证网关设备920在新增、删除、重启或者宕机等场景下不影响数据的处理。请求接入装置910支持多种负载均衡算法,通常采用最小连接数(leastConn,新的连接请求被派发至具有最小连接数目的后端服务器)的调度算法。
网关设备920:网关设备920不需要集成分布式服务框架,基于布式服务框架中的服务节点支持同端口双协议的前提下,网关设备920只负责接收HTTP访问请求,根据访问请求的内容获得接口名称(例如为服务名称,服务名称例如为服务a),从所连接的注册节点940中获取提供服务a的至少一个服务节点的地址列表,基于软负载均衡算法,选择一个服务节点的地址进行HTTP访问请求的转发。
服务节点930:服务节点930例如包括分布式服务架构中的多个服务节点,服务节点930在启动时可以向注册节点940写入服务节点930的地址和接口名称。服务节点930可以接收由网关设备920转发的HTTP访问请求,判断访问请求的报文格式是HTTP协议还是RPC协议,从而选择不同的协议处理链进行访问请求的解析,通过解析可以获得访问请求中的服务名称(例如为服务a)、版本号、请求参数等,从而实现接口处理逻辑,并将所访问的服务数据通过不同的序列化方式处理后进行返回。
注册节点940:注册节点940为分布式架构提供分布式配置服务、同步服务和命名注册。本公开示例中注册节点940选取的是节点数据强一致性的zookeeper注册节点,通常注册节点940以集群的方式部署,实现高可用和高性能,集群数量一般以奇数,由一台主设备和几台从设备组成。服务节点930会把包括接口名称和地址等注册信息写入注册节点940,注册节点940保证分布式下多节点的数据一致性。注册节点940将服务节点930地址列表返回给网关设备920(消费者),如果有变更,注册节点940将基于长连接推送变更数据给网关设备920。
图10示意性示出了根据本公开实施例的一种示例的请求接入装置内部结构示意图。本领域技术人员可以理解,图10所示的请求接入装置内部结构示意图仅为示例,本公开实施例并不局限于此。
如图10所示,请求接入装置910包括:请求心跳检测单元911、请求负载均衡单元912。
其中,请求心跳检测单元911用于检测网关设备920的可用性,保障访问请求不会被发送至故障的网关设备920上。
请求负载均衡单元912用于根据负载均衡算法,将访问请求发送至正常状态的网关设备920。本发明的实施例所采用的负载均衡算法例如为最小连接数的算法。
图11示意性示出了根据本公开实施例的一种示例的网关设备内部结构示意图。本领域技术人员可以理解,图11所示的网关设备内部结构示意图仅为示例,本公开实施例并不局限于此。
如图11所示,网关设备920包括网关协议接收单元921、服务订阅单元922、网关负载均衡单元923、服务转发单元924。接下来详细解释图11所示根据本公开实施例的各个组件的结构及功能。
网关协议接收单元921:网关协议接收单元921在网关设备920接收到HTTP访问请求时,获取访问请求的接口名称。
服务订阅单元922:网关设备920基于长连接通过注册节点940的订阅通知机制获取服务节点930的地址列表并处理成需要的格式。
网关负载均衡单元923:网关设备920提供负载均衡算法,包括轮循、随机、hash算法等,保证负载的均衡,防止单个实例负载过大。
协议转发单元24:在网关设备920通过网关负载均衡单元923选择一个服务节点930的地址后,协议转发单元24用于基于所选择的地址进行HTTP访问请求的转发。
图12示意性示出了根据本公开实施例的一种示例的服务节点内部结构示意图。本领域技术人员可以理解,图12所示的服务节点内部结构示意图仅为示例,本公开实施例并不局限于此。
如图12所示,服务节点930包括服务注册单元931,服务协议接收单元932,协议处理单元933,接口实现单元934。
服务注册单元931将服务节点930的注册信息写入到注册节点940中以注册自己提供的服务,该部分信息为临时信息,当服务节点不可用时,注册节点940将删除不可用的服务节点的信息。
服务协议接收单元932接收来自网关设备920转发的HTTP访问请求或请求终端发来的RPC访问请求。通过判断访问请求的报文格式选择不同的协议处理链处理访问请求,如果是HTTP格式的报文,选择超文本传输协议处理链,否则默认为远程过程调用协议处理链或Dubbo协议处理链。
协议处理单元933可处理HTTP访问请求和RPC访问请求。根据服务协议接收单元932转发而来的访问请求,协议处理单元933选择不同的协议处理链对访问请求进行解析,获得访问请求中的接口名称、版本号、请求参数等信息,并将访问请求进行反序列化,传给接口实现单元934。例如,在一个实例中调用一次DemoService1的1.1版本的testThree(String a,int b,HashMap c)方法,一个正确的HTTP访问的内容如下:
[
“abc”,
123,
{
“name”:“xiaoming”,
“age”:6
}
]
协议处理单元933使用JSON序列化方式将HTTP访问请求反序列化为java接口方法对应的参数对象。
另一方面,协议处理单元933使用JSON将RPC访问请求所访问的java对象进行序列化处理后返回。
接口实现单元934实现服务的处理逻辑,将RPC访问请求所访问的结果返给协议处理单元933。
图13示意性示出了根据本公开实施例的一种示例的注册节点内部结构示意图。本领域技术人员可以理解,图13所示的注册节点内部结构示意图仅为示例,本公开实施例并不局限于此。
如图13所示,注册节点940包括数据存储单元941、注册心跳检测单元942、变化通知单元943。接下来详细解释图13所示根据本公开实施例的各个组件的结构及功能。
数据存储单元941:注册节点940通过数据存储单元941提供分布式下信息存储、同步功能,信息包括服务节点信息、配置信息等。
注册心跳检测单元942:注册心跳检测单元942用于动态检测网关设备、请求终端、服务节点的可用性。当服务节点不可用时,注册节点940实时删除服务节点的注册信息。
变化通知单元943:当注册心跳检测单元942检测出服务节点出现上下线或服务节点不可用时,变化通知单元943基于长连接向网关设备全量推送可用服务节点的地址列表。
图14示意性示出了根据本公开实施例的一种访问请求处理方法的流程图。本领域技术人员可以理解,图14所示的访问请求处理方法仅为示例,本公开实施例并不局限于此。可以使用图9所示的系统结构900、图10所示的请求接入装置910和图11所示的网关设备920来实现图14所示的访问请求处理方法。接下来,将结合图9、图10、图11和图14来描述根据本公开实施例的示例方法的流程图。
结合图9、图10、图11和图14所示,访问请求处理方法可以包括步骤S1401~S1408。
在步骤S1401,请求接入装置910接收来自外部(例如请求终端)的访问请求。
在步骤S1402,请求接入装置910中的请求负载均衡单元912将访问请求发送至负载最低的网关设备920。
在步骤S1403,网关设备920中的网关协议接收单元921接收访问请求。
在步骤S1404,网关设备920中的网关协议接收单元921连接注册节点940,获取注册节点940中关于该访问请求所需的服务节点的地址列表。
在步骤S1405,网关设备920中的网关负载均衡单元923将访问请求转发给服务节点930。
在步骤S1406,服务节点930判断访问请求的请求报文协议是否是HTTP协议。
在步骤S1407,如果是HTTP协议,服务节点930接收并处理HTTP访问请求,并将访问请求所请求的服务数据返回至网关设备920。
在步骤S1408,如果不是HTTP协议,服务节点930接收并处理RPC访问请求,并将访问请求所请求的服务数据返回返回至消费方(例如请求终端)。
图15示意性示出了根据本公开实施例的一种由网关设备和服务节点执行的处理方法的流程图。本领域技术人员可以理解,图15所示的由网关设备和和服务节点执行的处理方法仅为示例,本公开实施例并不局限于此。可以使用图9所示的系统结构900、图11所示的网关设备920和图12所示的服务节点930来实现图15所示的由网关设备和服务节点执行的处理方法。接下来,将结合图9、图11、图12和图15来描述根据本公开实施例的示例方法的流程图。
结合图9、图11、图12和图15所示,由网关设备和服务节点执行的处理方法可以包括步骤S1501~S1511。
在步骤S1501,网关协议接收单元921从访问请求中获取接口名称。
在步骤S1502,网关设备920通过连接注册节点940来获取服务节点的地址列表。
在步骤S1503,网关负载均衡单元923从服务节点的地址列表中选出一个服务节点940的地址。
在步骤S1504,服务转发单元924将访问请求转发至网关负载均衡单元923选出的服务节点940。
在步骤S1505,服务节点930中的服务协议接收单元932读取访问请求中的报文内容。
在步骤S1506,服务节点930中的服务协议接收单元932判断访问请求的报文格式是否是HTTP协议。
在步骤S1507,服务节点930中的协议处理单元933利用RPC协议处理链解析RPC访问请求。
在步骤S1508,服务节点930中的协议处理单元933利用HTTP协议处理链解析HTTP访问请求。
在步骤S1509,获得访问请求的服务名称、版本号、请求参数等信息。
在步骤S1510,获取访问请求所访问的服务数据。
在步骤S1511,将服务数据进行序列化处理,返回序列化结果。
本公开基于分布式服务架构中服务节点所提供的同端口双协议功能的前提下,网关设备不再需要处理协议的转换功能,而是直接接收并转发HTTP访问请求,将HTTP访问请求交由服务节点来处理。其能够实现的技术效果至少如下:
1、网关设备只负责HTTP访问请求的接收和转发,不再需要与所有服务节点保持长连接,减小网络资源占用。
2、网关设备不再作为消费方,因此,网关设备无需根据接口名称、版本号等信息动态生成消费方引用并缓存,进一步释放了内存资源,其接入能力得以提升。
3、网关设备接入能力的提升,减少了网关设备的数量,进而减少了网关设备与注册节点的连接数量以及监听数量,降低了注册节点的压力。
4、服务节点无需将接口定义信息写入到注册节点的目录下,释放了注册节点的内存,避免了版本更新带来的管理差错等问题。
图16示意性示出了根据本公开实施例的应用于服务节点的数据处理装置的框图。
如图16所示,应用于服务节点的数据处理装置1600包括第一接收模块1610、第一确定模块1620、第一处理模块1630以及第二处理模块1640。
第一接收模块1610可以用于接收访问请求。根据本公开实施例,第一接收模块1610例如可以执行上文参考图2描述的操作S210,在此不再赘述。
第一确定模块1620可以用于确定访问请求的协议类型,其中,协议类型包括第一协议类型和第二协议类型,第一协议类型表征访问请求为网关设备通过超文本传输协议发送的来自请求终端的请求,第二协议类型表征访问请求为请求终端通过远程过程调用协议发送的请求。根据本公开实施例,第一确定模块1620例如可以执行上文参考图2描述的操作S220,在此不再赘述。
第一处理模块1630可以用于响应于确定访问请求的协议类型为第一协议类型,利用第一处理方式处理访问请求以得到请求终端所请求的服务数据。根据本公开实施例,第一处理模块1630例如可以执行上文参考图2描述的操作S230,在此不再赘述。
第二处理模块1640可以用于响应于确定防问请求的协议类型为第二协议类型,利用第二处理方式处理访问请求以得到请求终端所请求的服务数据。根据本公开实施例,第二处理模块1640例如可以执行上文参考图2描述的操作S240,在此不再赘述。
图17示意性示出了根据本公开实施例的第一处理模块的框图。
如图17所示,第一处理模块1630包括第一处理子模块1631、第一获取子模块1632以及第二处理子模块1633。
第一处理子模块1631可以用于通过超文本传输协议处理链对访问请求进行反序列化处理,得到第一对象信息。根据本公开实施例,第一处理子模块1631例如可以执行上文参考图3描述的操作S231,在此不再赘述。
第一获取子模块1632可以用于基于第一对象信息获取请求终端所请求的第一请求数据。根据本公开实施例,第一获取子模块1632例如可以执行上文参考图3描述的操作S232,在此不再赘述。
第二处理子模块1633可以用于对第一请求数据进行序列化处理得到服务数据。根据本公开实施例,第二处理子模块1633例如可以执行上文参考图3描述的操作S233,在此不再赘述。
图18示意性示出了根据本公开实施例的第二处理模块的框图。
如图18所示,第二处理模块1640包括第三处理子模块1641、第二获取子模块1642以及第四处理子模块1643。
第三处理子模块1641可以用于通过远程过程调用协议处理链对访问请求进行反序列化处理,得到第二对象信息。根据本公开实施例,第三处理子模块1641例如可以执行上文参考图4描述的操作S241,在此不再赘述。
第二获取子模块1642可以用于基于第二对象信息获取请求终端所请求的第二请求数据。根据本公开实施例,第二获取子模块1642例如可以执行上文参考图4描述的操作S242,在此不再赘述。
第四处理子模块1643可以用于对第二请求数据进行序列化处理得到服务数据。根据本公开实施例,第四处理子模块1643例如可以执行上文参考图4描述的操作S243,在此不再赘述。
图19示意性示出了根据本公开另一实施例的应用于服务节点的数据处理装置的框图。
如图19所示,应用于服务节点的数据处理装置1900包括第一接收模块1610、第一确定模块1620、第一处理模块1630、第二处理模块1640以及注册模块1910。
根据本公开实施例,访问请求包括第一接口信息,服务节点具有地址数据和第二接口信息。
注册模块1910可以用于将地址数据和第二接口信息注册到注册节点,以使网关设备或者请求终端基于第一接口信息和第二接口信息确定访问请求针对的服务节点,并使网关设备或者请求终端基于地址数据将访问请求发送至服务节点。根据本公开实施例,注册模块1910例如可以执行上文参考图5描述的操作S510,在此不再赘述。
图20示意性示出了根据本公开实施例的应用于网关设备的数据处理装置的框图。
如图20所示,应用于网关设备的数据处理装置2000包括第二接收模块2010、第二确定模块2020、第三确定模块2030以及发送模块2040。
第二接收模块2010可以用于接收来自请求终端的访问请求,访问请求为请求终端通过超文本传输协议发送的请求。根据本公开实施例,第二接收模块2010例如可以执行上文参考图6描述的操作S610,在此不再赘述。
第二确定模块2020可以用于确定访问请求所针对的至少一个服务节点。根据本公开实施例,第二确定模块2020例如可以执行上文参考图6描述的操作S620,在此不再赘述。
第三确定模块2030可以用于确定至少一个服务节点中的目标服务节点。
根据本公开实施例,确定至少一个服务节点中的目标服务节点,包括:基于负载均衡算法,从至少一个服务节点中确定目标服务节点。
根据本公开实施例,第三确定模块2030例如可以执行上文参考图6描述的操作S630,在此不再赘述。
发送模块2040可以用于将访问请求发送至目标服务节点,以使目标服务节点基于超文本传输协议确定目标处理方式,并使目标服务节点基于目标处理方式处理访问请求以得到请求终端所请求的服务数据。根据本公开实施例,发送模块2040例如可以执行上文参考图6描述的操作S640,在此不再赘述。
图21示意性示出了根据本公开实施例的第二确定模块的框图。
如图21所示,第二确定模块2020包括第三获取子模块2021、注册子模块2022以及接收子模块2023。
第三获取子模块2021可以用于获取访问请求中的第一接口信息。根据本公开实施例,第三获取子模块2021例如可以执行上文参考图7描述的操作S621,在此不再赘述。
注册子模块2022可以用于将第一接口信息发送至注册节点中,以使注册节点基于第一接口信息和第二接口信息从多个服务节点中确定至少一个服务节点,其中注册节点中包括多个服务节点的第二接口信息和多个服务节点的地址数据。根据本公开实施例,注册子模块2022例如可以执行上文参考图7描述的操作S622,在此不再赘述。
接收子模块2023可以用于接收来自注册节点的至少一个服务节点的地址数据,以便网关设备基于至少一个服务节点的地址数据将访问请求发送至目标服务节点。根据本公开实施例,接收子模块2023例如可以执行上文参考图7描述的操作S623,在此不再赘述。
图22示意性示出了根据本公开另一实施例的应用于网关设备的数据处理装置的框图。
如图22所示,应用于网关设备的数据处理装置2200包括第二接收模块2010、第二确定模块2020、第三确定模块2030、发送模块2040、建立模块2210以及第三接收模块2220。
建立模块2210可以用于当多个服务节点中出现不可用服务节点时,与注册节点建立长连接。根据本公开实施例,建立模块2210例如可以执行上文参考图8描述的操作S810,在此不再赘述。
第三接收模块2220可以用于接收来自注册节点的更新后的地址数据,更新后的地址数据是通过从多个服务节点的地址数据去除不可用服务节点的地址数据来得到的。根据本公开实施例,第三接收模块2220例如可以执行上文参考图8描述的操作S820,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一接收模块1610、第一确定模块1620、第一处理模块1630、第一处理子模块1631、第一获取子模块1632、第二处理子模块1633、第二处理模块1640、第三处理子模块1641、第二获取子模块1642、第四处理子模块1643、注册模块1910、第二接收模块2010、第二确定模块2020、第三获取子模块2021、注册子模块2022、接收子模块2023、第三确定模块2030、发送模块2040、建立模块2210以及第三接收模块2220中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一接收模块1610、第一确定模块1620、第一处理模块1630、第一处理子模块1631、第一获取子模块1632、第二处理子模块1633、第二处理模块1640、第三处理子模块1641、第二获取子模块1642、第四处理子模块1643、注册模块1910、第二接收模块2010、第二确定模块2020、第三获取子模块2021、注册子模块2022、接收子模块2023、第三确定模块2030、发送模块2040、建立模块2210以及第三接收模块2220中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一接收模块1610、第一确定模块1620、第一处理模块1630、第一处理子模块1631、第一获取子模块1632、第二处理子模块1633、第二处理模块1640、第三处理子模块1641、第二获取子模块1642、第四处理子模块1643、注册模块1910、第二接收模块2010、第二确定模块2020、第三获取子模块2021、注册子模块2022、接收子模块2023、第三确定模块2030、发送模块2040、建立模块2210以及第三接收模块2220中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图23示意性示出了根据本公开实施例的数据处理的计算机系统的方框图。图23示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图23所示,计算机系统2300包括处理器2301、计算机可读存储介质2302。该系统2300可以执行根据本公开实施例的方法。
具体地,处理器2301例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器2301还可以包括用于缓存用途的板载存储器。处理器2301可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质2302,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质2302可以包括计算机程序2303,该计算机程序2303可以包括代码/计算机可执行指令,其在由处理器2301执行时使得处理器2301执行根据本公开实施例的方法或其任何变形。
计算机程序2303可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序2303中的代码可以包括一个或多个程序模块,例如包括2303A、模块2303B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器2301执行时,使得处理器2301可以执行根据本公开实施例的方法或其任何变形。
根据本公开的实施例,第一接收模块1610、第一确定模块1620、第一处理模块1630、第一处理子模块1631、第一获取子模块1632、第二处理子模块1633、第二处理模块1640、第三处理子模块1641、第二获取子模块1642、第四处理子模块1643、注册模块1910、第二接收模块2010、第二确定模块2020、第三获取子模块2021、注册子模块2022、接收子模块2023、第三确定模块2030、发送模块2040、建立模块2210以及第三接收模块2220中的至少一个可以实现为参考图23描述的计算机程序模块,其在被处理器2301执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现上述方法。
根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (12)

1.一种应用于服务节点的数据处理方法,包括:
接收访问请求,所述访问请求包括第一接口信息,所述服务节点具有地址数据和第二接口信息;
将所述地址数据和所述第二接口信息注册到注册节点,以使网关设备或者请求终端基于所述第一接口信息和所述第二接口信息确定所述访问请求针对的所述服务节点,并使所述网关设备或者所述请求终端基于所述地址数据将所述访问请求发送至所述服务节点;
确定所述访问请求的协议类型,其中,所述协议类型包括第一协议类型和第二协议类型,所述第一协议类型表征所述访问请求为所述网关设备通过超文本传输协议发送的来自所述请求终端的请求,所述第二协议类型表征所述访问请求为所述请求终端通过远程过程调用协议发送的请求;
响应于确定所述访问请求的协议类型为第一协议类型,利用第一处理方式处理所述访问请求以得到所述请求终端所请求的服务数据;以及
响应于确定所述访问请求的协议类型为第二协议类型,利用第二处理方式处理所述访问请求以得到所述请求终端所请求的服务数据;
其中,利用所述第一处理方式和/或所述第二处理方式对所述访问请求进行反序列化处理,得到对象信息;
基于所述对象信息,获取所述请求终端的请求数据;
对所述请求数据进行序列化得到所述服务数据。
2.根据权利要求1所述的方法,其中,所述利用第一处理方式处理所述访问请求以得到所述请求终端所请求的服务数据,包括:
通过超文本传输协议处理链对所述访问请求进行反序列化处理,得到第一对象信息;
基于所述第一对象信息获取所述请求终端所请求的第一请求数据;以及
对所述第一请求数据进行序列化处理得到所述服务数据。
3.根据权利要求1所述的方法,其中,所述利用第二处理方式处理所述访问请求以得到所述请求终端所请求的服务数据,包括:
通过远程过程调用协议处理链对所述访问请求进行反序列化处理,得到第二对象信息;
基于所述第二对象信息获取所述请求终端所请求的第二请求数据;以及
对所述第二请求数据进行序列化处理得到所述服务数据。
4.一种应用于网关设备的数据处理方法,包括:
接收来自请求终端的访问请求,所述访问请求为所述请求终端通过超文本传输协议发送的请求;
确定所述访问请求所针对的至少一个服务节点,所述至少一个服务节点中的每个服务节点用于执行权利要求1所述的方法;
确定所述至少一个服务节点中的目标服务节点;
将所述访问请求发送至所述目标服务节点,以使所述目标服务节点基于所述超文本传输协议确定目标处理方式,并使所述目标服务节点基于所述目标处理方式处理所述访问请求以得到所述请求终端所请求的服务数据。
5.根据权利要求4所述的方法,其中,所述确定所述访问请求所针对的至少一个服务节点,包括:
获取所述访问请求中的第一接口信息;
将所述第一接口信息发送至注册节点中,以使所述注册节点基于所述第一接口信息和第二接口信息从多个服务节点中确定所述至少一个服务节点,其中所述注册节点中包括所述多个服务节点的第二接口信息和所述多个服务节点的地址数据;以及
接收来自所述注册节点的所述至少一个服务节点的地址数据,以便所述网关设备基于所述至少一个服务节点的地址数据将所述访问请求发送至所述目标服务节点。
6.根据权利要求5所述的方法,还包括:
当所述多个服务节点中出现不可用服务节点时,与所述注册节点建立长连接;以及
接收来自所述注册节点的更新后的地址数据,所述更新后的地址数据是通过从所述多个服务节点的地址数据去除所述不可用服务节点的地址数据来得到的。
7.根据权利要求4所述的方法,其中,所述确定所述至少一个服务节点中的目标服务节点,包括:
基于负载均衡算法,从所述至少一个服务节点中确定所述目标服务节点。
8.一种应用于服务节点的数据处理装置,包括:
第一接收模块,接收访问请求,所述访问请求包括第一接口信息,所述服务节点具有地址数据和第二接口信息;
注册模块,将所述地址数据和所述第二接口信息注册到注册节点,以使网关设备或者请求终端基于所述第一接口信息和所述第二接口信息确定所述访问请求针对的所述服务节点,并使所述网关设备或者所述请求终端基于所述地址数据将所述访问请求发送至所述服务节点;
第一确定模块,确定所述访问请求的协议类型,其中,所述协议类型包括第一协议类型和第二协议类型,所述第一协议类型表征所述访问请求为所述网关设备通过超文本传输协议发送的来自所述请求终端的请求,所述第二协议类型表征所述访问请求为所述请求终端通过远程过程调用协议发送的请求;
第一处理模块,响应于确定所述访问请求的协议类型为第一协议类型,利用第一处理方式处理所述访问请求以得到所述请求终端所请求的服务数据;以及
第二处理模块,响应于确定所述访问请求的协议类型为第二协议类型,利用第二处理方式处理所述访问请求以得到所述请求终端所请求的服务数据;
其中,利用所述第一处理方式和/或所述第二处理方式对所述访问请求进行反序列化处理,得到对象信息;
基于所述对象信息,获取所述请求终端的请求数据;
对所述请求数据进行序列化得到所述服务数据。
9.一种应用于网关设备的数据处理装置,包括:
第二接收模块,接收来自请求终端的访问请求,所述访问请求为所述请求终端通过超文本传输协议发送的请求;
第二确定模块,确定所述访问请求所针对的至少一个服务节点,所述至少一个服务节点中的每个服务节点用于执行权利要求1所述的方法;
第三确定模块,确定所述至少一个服务节点中的目标服务节点;以及
发送模块,将所述访问请求发送至所述目标服务节点,以使所述目标服务节点基于所述超文本传输协议确定目标处理方式,并使所述目标服务节点基于所述目标处理方式处理所述访问请求以得到所述请求终端所请求的服务数据。
10.一种数据处理系统,包括:
请求终端;
注册节点;
至少一个服务节点,所述至少一个服务节点中的每个服务节点用于执行权利要求1至3中任一项所述的方法;
网关设备,用于执行权利要求4至7中任一项所述的方法。
11.一种计算设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任一项所述的方法。
12.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至7中任一项所述的方法。
CN201910738426.XA 2019-08-09 2019-08-09 数据处理方法、装置、系统、计算设备以及介质 Active CN110430275B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910738426.XA CN110430275B (zh) 2019-08-09 2019-08-09 数据处理方法、装置、系统、计算设备以及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910738426.XA CN110430275B (zh) 2019-08-09 2019-08-09 数据处理方法、装置、系统、计算设备以及介质

Publications (2)

Publication Number Publication Date
CN110430275A CN110430275A (zh) 2019-11-08
CN110430275B true CN110430275B (zh) 2022-07-08

Family

ID=68413937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910738426.XA Active CN110430275B (zh) 2019-08-09 2019-08-09 数据处理方法、装置、系统、计算设备以及介质

Country Status (1)

Country Link
CN (1) CN110430275B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110839046B (zh) * 2019-12-03 2022-04-22 睿哲科技股份有限公司 多协议的互通方法和系统
CN111045750B (zh) * 2019-12-19 2023-07-07 飞天诚信科技股份有限公司 多应用设备上自动匹配应用程序的方法及电子设备
CN111274150B (zh) * 2020-02-07 2023-08-22 北京字节跳动网络技术有限公司 服务实例访问方法、装置和电子设备
CN111338829B (zh) * 2020-03-26 2023-09-15 口碑(上海)信息技术有限公司 远程过程调用服务的调用方法及装置
CN112214475B (zh) * 2020-11-04 2023-07-07 成都中科大旗软件股份有限公司 一种多种数据源配置方法、系统、存储介质及终端
CN114760360B (zh) * 2020-12-29 2023-12-22 奇安信网神信息技术(北京)股份有限公司 请求响应方法、装置、电子设备及计算机可读存储介质
CN113595795A (zh) * 2021-07-30 2021-11-02 工银科技有限公司 网络通信方法、装置、系统、设备和介质
CN113596164A (zh) * 2021-07-30 2021-11-02 工银科技有限公司 数据访问方法、装置、系统、设备和介质
CN114257576A (zh) * 2021-12-10 2022-03-29 中信银行股份有限公司 一种基于支持多种通讯协议的rpc服务端实现方法
CN114979295B (zh) * 2022-05-19 2024-05-17 京东城市(北京)数字科技有限公司 一种网关管理的方法和装置
CN115002229B (zh) * 2022-06-08 2024-09-13 阿里巴巴(中国)有限公司 边缘云网络系统、调度方法、设备、系统及存储介质
CN116561013B (zh) * 2023-07-04 2023-09-26 建信金融科技有限责任公司 基于目标服务框架的测试方法、装置、电子设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108322530A (zh) * 2018-01-29 2018-07-24 广东欧珀移动通信有限公司 上下文环境信息的传递方法、装置、服务网关及存储介质
CN108718335A (zh) * 2018-05-14 2018-10-30 北京百悟科技有限公司 一种负载均衡方法、装置、Web服务器及存储介质
CN108874567A (zh) * 2018-07-19 2018-11-23 广州市创乐信息技术有限公司 一种服务处理方法及系统
CN109597693A (zh) * 2018-09-25 2019-04-09 国网浙江省电力有限公司信息通信分公司 分布式软件系统中grpc通信协议的应用方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135145B2 (en) * 2013-01-28 2015-09-15 Rackspace Us, Inc. Methods and systems of distributed tracing
US9973475B2 (en) * 2014-10-22 2018-05-15 Protegrity Corporation Data computation in a multi-domain cloud environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108322530A (zh) * 2018-01-29 2018-07-24 广东欧珀移动通信有限公司 上下文环境信息的传递方法、装置、服务网关及存储介质
CN108718335A (zh) * 2018-05-14 2018-10-30 北京百悟科技有限公司 一种负载均衡方法、装置、Web服务器及存储介质
CN108874567A (zh) * 2018-07-19 2018-11-23 广州市创乐信息技术有限公司 一种服务处理方法及系统
CN109597693A (zh) * 2018-09-25 2019-04-09 国网浙江省电力有限公司信息通信分公司 分布式软件系统中grpc通信协议的应用方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
带入gRPC:让你的服务同时提供HTTP接口;煎鱼;《http://segmentfault.com/a/1190000016601836》;20180223;全文 *

Also Published As

Publication number Publication date
CN110430275A (zh) 2019-11-08

Similar Documents

Publication Publication Date Title
CN110430275B (zh) 数据处理方法、装置、系统、计算设备以及介质
WO2017028779A1 (zh) 物联网协议转换功能的配置方法、装置、非易失性计算机存储介质和电子设备
CN110262902B (zh) 信息处理方法及系统、介质和计算设备
US20170026306A1 (en) Systems and methods for autonomous resource discovery, management, and stitching
US20200288302A1 (en) Service Notification Method For Mobile Edge Host And Apparatus
CN112769671B (zh) 消息处理方法、装置与系统
US20230262143A1 (en) Relocation of application context to edge data network
CN112104640B (zh) 网关的数据处理方法、装置、设备及可读存储介质
CN113794652B (zh) 数据处理方法、装置、电子设备及存储介质
CN111757402B (zh) 一种通信方法及装置
CN116048538B (zh) 用于dpu的服务网格部署方法及装置
US20210329098A1 (en) Methods of operating service instance sets and/or set restoration storage resources and related network nodes
CN113434249A (zh) 镜像同步方法、装置、docker主机及存储介质
CN113300854A (zh) 一种边缘节点能力扩展方法、系统及扩展盒子
CN115883655A (zh) 服务请求处理方法、装置、电子设备及存储介质
US8725856B2 (en) Discovery of network services
US11706301B2 (en) Server node selection method and terminal device
WO2022022322A1 (zh) 访问本地网络的方法和装置
US20230308429A1 (en) Method and apparatus related to authorisation tokens for service requests
CN115756771B (zh) 微服务化的前置系统、工作流调度方法及装置
CN109981778B (zh) 内容分发网络的服务实现方法、装置、设备及存储介质
CN111866211A (zh) 应用于终端的网络访问方法、装置、终端和介质
WO2023051130A1 (zh) 卫星核心网的部署方法及装置、系统、介质、程序产品
WO2023016460A1 (zh) 计算任务的策略确定或资源分配方法、装置、网元及介质
US9246754B2 (en) Automatic failover of nodes of a middle-tier layer

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