CN113542244A - 微服务调用方法、装置、服务器和系统 - Google Patents

微服务调用方法、装置、服务器和系统 Download PDF

Info

Publication number
CN113542244A
CN113542244A CN202110750838.2A CN202110750838A CN113542244A CN 113542244 A CN113542244 A CN 113542244A CN 202110750838 A CN202110750838 A CN 202110750838A CN 113542244 A CN113542244 A CN 113542244A
Authority
CN
China
Prior art keywords
port
service
machine room
network address
micro service
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.)
Granted
Application number
CN202110750838.2A
Other languages
English (en)
Other versions
CN113542244B (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.)
Jingdong Technology Holding Co Ltd
Original Assignee
Jingdong Technology Holding 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 Jingdong Technology Holding Co Ltd filed Critical Jingdong Technology Holding Co Ltd
Priority to CN202110750838.2A priority Critical patent/CN113542244B/zh
Publication of CN113542244A publication Critical patent/CN113542244A/zh
Application granted granted Critical
Publication of CN113542244B publication Critical patent/CN113542244B/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/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2596Translation of addresses of the same type other than IP, e.g. translation from MAC to MAC addresses
    • 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/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本申请提供一种微服务调用方法、装置、服务器和系统,其中,该方法包括:响应于第一微服务提交的对第二微服务进行调用的调用请求,从预设注册表中获取第一微服务的注册信息和第二微服务的注册信息,根据第一微服务的注册信息和第二微服务的注册信息,确定各个机房中的网络地址转换设备的类型,根据各个机房中的网络地址转换设备的类型,获取相应的目标地址和目标端口并发送至第一微服务和第二微服务。该技术方案能够实现部署在不同机房中的微服务之间的点对点通信,避免使用接口网关做代理转发,减少了网络传输所需时间,提高了微服务之间的调用效率。

Description

微服务调用方法、装置、服务器和系统
技术领域
本申请涉及网络通信技术领域,尤其涉及一种微服务调用方法、装置、服务器和系统。
背景技术
目前微服务架构在企业系统中广泛的使用,微服务架构是一种分布式系统架构,它将业务整体拆分为大量微服务,各个微服务可被独立部署在不同的机房,每一个微服务仅关注于完成一件任务,微服务之间可以互相调用,实现信息交换。
现有技术中,不同机房部署的微服务在互相进行调用时,需要在两个机房之间设置网关,通过接口网关代理需要跨机房的服务接口,来实现两个微服务之间的数据通信。
但是,现有技术的这种方式由于加入了接口网关进行代理,相当于在整个服务调用链路中增加了一个网关层,导致网络传输时间增加,降低了服务调用效率。
发明内容
本申请提供一种微服务调用方法、装置、服务器和系统,用于解决现有跨机房中微服务之间互相调用的效率低的问题。
第一方面,本申请实施例提供一种微服务调用方法,应用于服务器,所述服务器通过第一机房中的网络地址转换设备与第一机房中部署的第一微服务进行通信,所述服务器通过第二机房中的网络地址转换设备与第二机房中部署的第二微服务进行通信,所述方法包括:
响应于第一微服务提交的对第二微服务进行调用的调用请求,从预设注册表中获取所述第一微服务的注册信息和第二微服务的注册信息;
根据所述第一微服务的注册信息和第二微服务的注册信息,确定各个机房中的网络地址转换设备的类型;
根据各个机房中的网络地址转换设备的类型,获取相应的目标地址和目标端口;
将所述目标地址和目标端口发送至第一微服务和第二微服务,所述目标地址和目标端口用于所述第一微服务调用所述第二微服务。
在第一方面的一种可能设计中,所述服务器包括至少两个服务注册接口,所述从预设注册表中获取所述第一微服务的注册信息和第二微服务的注册信息,包括:
从所述预设注册表获取所述第一微服务的第一来源信息和第二来源信息,作为所述第一微服务的注册信息,所述第一来源信息为所述第一微服务上传至第一服务注册接口的信息,所述第二来源信息为所述第一微服务上传至第二服务注册接口的信息;
从所述预设注册表中获取所述第二微服务的第三来源信息和第四来源信息,作为所述第二微服务的注册信息,所述第三来源信息为所述第二微服务上传至所述第一服务注册接口的信息,所述第四来源信息为所述第二微服务上传至所述第二服务注册接口的信息。
在第一方面的另一种可能设计中,所述根据所述第一微服务的注册信息和第二微服务的注册信息,确定各个机房中的网络地址转换设备的类型,包括:
根据所述第一来源信息中的端口和第二来源信息中的端口,确定所述第一机房中的网络地址转换设备的类型;
根据所述第三来源信息中的端口和第四来源信息中的端口,确定所述第二机房中的网络地址转换设备的类型。
在第一方面的再一种可能设计中,所述网络地址转换设备的类型包括第一类型和第二类型,所述根据所述第一来源信息中的端口和第二来源信息中的端口,确定所述第一机房中的网络地址转换设备的类型,包括:
若所述第一来源信息的端口与第二来源信息的端口匹配,则确定所述第一机房中的网络地址转换设备为第一类型;
若所述第一来源信息的端口与第二来源信息的端口不匹配,则确定所述第一机房中的网络地址转换设备为第二类型;
所述根据所述第三来源信息中的端口和第四来源信息中的端口,确定所述第二机房中的网络地址转换设备的类型,包括:
若所述第三来源信息的端口与第四来源信息的端口匹配,则确定所述第二机房中的网络地址转换设备为第一类型;
若所述第三来源信息的端口与第四来源信息的端口不匹配,则确定所述第二机房中的网络地址转换设备为第二类型。
在第一方面的又一种可能设计中,所述根据各个机房中的网络地址转换设备的类型,获取相应的目标地址和目标端口,包括:
若所述第一机房中的网络地址转换设备和/或所述第二机房中的网络地址转换设备为第一类型,则从所述预设注册表中得到目标地址和目标端口;
若所述第一机房中的网络地址转换设备和所述第二机房中的网络地址转换设备为第二类型,则从所述预设注册表中得到目标地址,以及从所述第一机房中的网络地址转换设备和第二机房中的地址转换设备中获取目标端口。
在第一方面的又一种可能设计中,所述从所述预设注册表中获取得到目标地址和目标端口,包括:
从所述预设注册表中获取所述第一微服务的注册地址和所述第二微服务的注册地址,作为所述目标地址;
从所述预设注册表中获取所述第一微服务的注册端口和所述第二微服务中的注册端口,作为所述目标端口。
在第一方面的又一种可能设计中,所述从所述预设注册表中得到目标地址,以及从所述第一机房中的网络地址转换设备和第二机房中的地址转换设备中获取目标端口,包括:
从所述预设注册表中获取所述第一微服务的注册地址和所述第二微服务的注册地址,作为所述目标地址;
发送端口开通申请至所述第一机房的网络地址转换设备和第二机房的网络地址转换设备,所述端口开通申请用于指示所述第一机房的网络地址转换设备和第二机房的网络地址转换设备开通调用端口;
获取所述第一机房的网络地址转换设备和第二机房的网络地址转换设备开通的调用端口,作为所述目标端口。
在第一方面的又一种可能设计中,所述将所述目标地址和目标端口发送至第一微服务和第二微服务,包括:
将所述第一微服务的的注册地址和注册端口发送至所述第二机房的网络地址转换设备;
将所述第二微服务的注册地址和注册端口发送至所述第一机房的网络地址转换设备。
在第一方面的又一种可能设计中,所述将所述目标地址和目标端口发送至第一微服务和第二微服务,包括:
将所述第一微服务的注册地址和第一机房的网络地址转换设备开通的调用端口发送至所述第二机房的网络转换设备;
将所述第二微服务的注册地址和第二机房的网络地址转换设备开通的调用端口发送至所述第一机房的网络转换设备。
在第一方面的又一种可能设计中,所述从预设注册表中获取所述第一微服务的注册信息和第二微服务的注册信息之前,还包括:
每间隔预设时间周期,获取所述第一机房的网络地址转换设备上传的地址和端口和所述第二机房的网络地址转换设备上传的地址和端口;
根据所述第一机房的网络地址转换设备上传的地址和端口,得到所述第一微服务的注册信息;
根据所述第二机房的网络地址转换设备上传的地址和端口,得到所述第二微服务的注册信息。
第二方面,本申请实施例提供微服务调用装置,包括:
响应模块,用于响应于第一微服务提交的对第二微服务进行调用的调用请求,从预设注册表中获取所述第一微服务的注册信息和第二微服务的注册信息;
确定模块,用于根据所述第一微服务的注册信息和第二微服务的注册信息,确定各个机房中的网络地址转换设备的类型;
获取模块,用于根据各个机房中的网络地址转换设备的类型,获取相应的目标地址和目标端口;
发送模块,用于将所述目标地址和目标端口发送至第一微服务和第二微服务,所述目标地址和目标端口用于所述第一微服务调用所述第二微服务。
第三方面,本申请实施例提供一种服务器,包括存储器和至少一个处理器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上述的方法。
第四方面,本申请实施例提供一种微服务调用系统,包括:第一机房、第二机房和服务器,所述第一机房中部署有第一微服务和第一网络地址转换设备,所述第二机房中部署有第二微服务和第二网络地址转换设备,所述第一微服务通过所述第一网络地址转换设备与所述服务器进行通信,所述第二微服务通过所述第二网络地址转换设备与所述服务器通信;
所述服务器用于获取第一微服务上传的注册信息和第二微服务上传的注册信息,根据所述第一微服务的注册信息和第二微服务的注册信息,实现所述第一微服务与第二微服务之间的通信。
第五方面,本申请实施例提供一种可读存储介质,所述可读存储介质中存储有计算机指令,所述计算机指令被处理器执行时用于实现如上述的方法。
第六方面,本申请实施例提供一种程序产品,包括计算机指令,该计算机指令被处理器执行时实现上述的方法。
本申请实施例提供的微服务调用方法、装置、服务器和系统,通过服务器获取部署在不同机房的微服务利用其网络地址转换设备上传的注册信息,确定出不同机房中的网络地址转换设备的类型,并依据不同类型的网络地址转换设备,确定对应的地址和端口,并下发至各个机房,能够实现部署在不同机房中的微服务之间的点对点通信,避免使用接口网关做代理转发,减少了网络传输所需时间,提高了微服务之间的调用效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理;
图1为本申请实施例提供的微服务调用方法的场景示意图;
图2为本申请实施例提供的微服务调用方法实施例一的流程示意图;
图3为本申请实施例提供的微服务注册流程示意图;
图4为本申请实施例提供的微服务调用方法实施例二的流程示意框图;
图5为本申请实施例提供的微服务调用方法实施例三的流程示意框图;
图6为本申请实施例提供的微服务调用装置的结构示意图;
图7为本申请实施例提供的服务器的示意框图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先对本申请所涉及的名词进行解释:
NAT:
网络地址转换(Network Address Translation,NAT),也叫做网络掩蔽或者IP掩蔽(IP masquerading),是一种把内部网络私有IP地址转换为外部网络公共IP地址的技术。NAT技术能够使得一定范围内的多台主机只利用一个公共IP地址连接到外网,可以在很大程度上缓解公网IP地址紧缺的问题。
图1为本申请实施例提供的微服务调用方法的场景示意图,如图1所示,该微服务调用方法应用于服务器11中,第一机房12和第二机房13中可以部署多台主机,每一台主机中都可以部署微服务,不同的主机的微服务对应有一个内网IP和端口,将第一机房12中部署的微服务122称为service1,其内网IP为102.168.0.2,端口为5199,将第二机房13中的微服务132称为service2,其内网IP为102.168.0.2,端口为5199。service1可以通过第一机房12中的NAT设备121,将内网IP转换为公网IP:10.244.12.11,实现与服务器11的通信,service2通过第二机房13中的NAT设备131,将内网IP转换为20.55.12.87,实现与服务器11的通信。
示例性的,第一机房12和第二机房13可以是跨地域的,例如第一机房12和第二机房13可以布置在不同的城市中。
在实际生活应用中,微服务架构能够实现同一机房的微服务与微服务之间的点对点通信调用,所有的通信节点的地位都是对等的,每个节点都可以充当客户端或者服务端,调用服务端或被客户端调用,节点之间通过直接通信实现信息交换。跨机房调用是指一个机房中的微服务调用另一个机房中的微服务,但是由于设置在机房中的NAT设备不允许外网主机主动访问内网主机,如此就造成了跨机房之间的微服务无法互相调用。
目前,现有技术主要是通过接口网关作为代理层,实现跨机房微服务之间的互相连接,如此,当一个机房中的微服务需要调用另一个机房中的微服务时,就需要先经过网关,增加了网络传输时间,降低服务调用效率,并且调用方和服务提供房还需要适配网关,和原有的微服务技术框架无法保持一致性。
针对上述问题,本申请实施例提供了一种微服务调用方法、装置、服务器和系统,通过服务器获取两个机房中部署的微服务service1、微服务service2的注册信息,并根据注册信息,确定各个微服务所属机房中的NAT设备的类型,以获取对应的目标地址和目标端口,下发给两个机房中的微服务service1、微服务service2,实现微服务service1与微服务service2之间的点对点通信连接,使两者之间能够互相调用,避免使用网关,提高网络传输速度,使得服务调用效率提高。
下面,通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图2为本申请实施例提供的微服务调用方法实施例一的流程示意图,该方法可以应用于上述的服务器,服务器通过第一机房中的网络地址转换设备与第一机房中部署的第一微服务进行通信,服务器通过第二机房中的网络地址转换设备与第二机房中部署的第二微服务进行通信。如图2所示,该方法具体包括如下步骤:
S201、响应于第一微服务提交的对第二微服务进行调用的调用请求,从预设注册表中获取第一微服务的注册信息和第二微服务的注册信息。
在本实施例中,第一微服务和第二微服务可以先将自身的注册信息上传至服务器,完成信息注册,并由服务器保存在预设注册表中。
示例性的,图3为本申请实施例提供的微服务注册流程示意图,如图3所示,服务器可以提供两个服务注册接口,其中一个服务注册接口为20.25.200.20:7001,另一个服务注册接口为20.25.200.20:7002,微服务service1和微服务service2在进程启动之后,就会通过跨机房组件软件开发工具包(Software Development Kit,SDK)以用户数据报协议(UserDatagram Protocol,UDP)的形式通过自身机房的网络地址转换设备向服务器的两个服务注册接口上报各自的注册信息。
其中,网络地址转换设备即上述的NAT设备,用于实现内外网地址转换。示例性的,微服务service1的内网IP和端口为192.168.0.2:5199,微服务service2的内网IP和端口为92.168.0.2:5199。第一机房的网络地址转换设备接收微服务service1的发起的服务注册,对微服务service1的内网IP和端口进行转换,生成连接会话3和会话4,得到外网IP和端口为10.244.12.11:23125之后,再向服务器的两个服务注册接口提交微服务service1的注册信息,服务器的两个服务注册接口接收到的第一微服务的注册信息均为10.244.12.11:23125,即第一来源信息和第二来源信息,存入到服务列表中心的数据库中。
第二机房的网络地址转换设备接收微服务service2的发起的服务注册,对微服务service2的内网IP和端口进行转换,生成连接会话1和会话2,得到外网IP和端口为20.55.12.87:3115之后,再向服务器的两个服务注册接口提交微服务service2的注册信息,服务器的两个服务注册接口接收到的第一微服务的注册信息均为20.55.12.87:3115,即第三来源信息和第四来源信息,存入到服务列表中的数据库中。
当完成注册之后,第一微服务若需要对第二微服务进行调用,则可以向服务器发起调用第二微服务的请求,示例性的,服务器可以提供服务发现接口,第一微服务通过网络地址转换设备,向服务器的服务发现接口上报调用请求。
示例性的,服务发现接口可以为20.25.200.20:7003。
示例性的,第一微服务和第二微服务的注册信息可以是自身机房的出口IP和出口Port,即网络地址转换设备的出口IP和出口Port,以图3为例,第一微服务的注册信息包括10.244.12.11(即网络地址转换设备的出口IP),23125(即网络地址转换设备的出口Port),第二微服务的注册信息包括10.244.12.11(即网络地址转换设备的出口IP),23125(即网络地址转换设备的出口Port)。
S202、根据第一微服务的注册信息和第二微服务的注册信息,确定各个机房中的网络地址转换设备的类型。
网络地址转换设备的类型可以分为四种,第一种为全锥型,第二种为受限锥型,又称为IP受限锥型,第三种为端口受限锥型,又可以称为IP+PORT受限锥型,第四种为对称型。
本申请实施例中,将前三种统称为锥型,即只将网络地址转换设备分为锥型和对称型两种。锥型的网络地址转换设备具体是指将从同一内网IP和端口来的所有请求,都映射到相同的外网IP和端口,而对称型的网络地址转换设备是指将每一个请求,都映射到一个不同的外网IP和端口。
示例性的,可以根据第一微服务的注册信息中的出口Port来确定第一机房中的网络地址转换设备是属于锥型还是对称型,具体的,第一微服务的注册信息分为两个来源,以图3为例,第一微服务service1的第一来源信息为10.244.12.11:23125,第一来源信息中的出口port为23125,第二来源信息为10.244.12.11:23125,第二来源信息中的出口port也23125,则可以确定第一机房的网络地址转换设备为锥形,若第一来源信息与第二来源信息中的出口Port不同,则确定第一机房的网络地址转换设备为对称型。
其中,第一来源信息是服务器从第一服务注册接口获取的,第二来源信息是服务器从第二服务注册接口获取的,第一服务注册接口和第二服务注册接口用于第一微服务service1、第二微服务service2上传各自的注册信息。
S203、根据各个机房中的网络地址转换设备的类型,获取相应的目标地址和目标端口。
在本实施例中,锥型的网络地址转换设备,使用第一方式获取目标地址和目标端口,对称型的网络地址转换设备,使用第二方式获取目的地址和目标端口,示例性的,第一方式获取的目标地址和目标端口可以与第二方式获取的目标地址和目标端口不相同。
其中,第一方式为从预设注册表中获取目标地址和目标端口。示例性的,以图3为例,从预设注册表中获取的目标地址包括第一目标地址10.244.12.11,第二目标地址20.55.12.87,目标端口包括第一目标端口23125,第二目标端口3115。
第二方式为从预设注册表获取目标地址,从网络地址转换设备获取目标端口,这是由于对称型的网络地址转换设备,每一个请求都映射到一个不同的外网IP和端口,只能由服务器向网络地址转换设备获取。
S204、将目标地址和目标端口发送至第一微服务和第二微服务。
其中,目标地址和目标端口用于第一微服务调用第二微服务。
具体的,当确定好目标地址和目标端口之后,只需要将目标地址和目标端口下发给第一微服务service1和第二微服务service2即可。
示例性的,以图3为例,从预设注册表(即服务列表中心)中获取的目标地址包括第一目标地址10.244.12.11,第二目标地址20.55.12.87,目标端口包括第一目标端口23125,第二目标端口3115。将第一目标地址10.244.12.11和第一目标端口23125下发至第二机房的第二微服务,将第二目标地址20.55.12.87,第二目标端口3115下发至第一机房的第一微服务。
本申请实施例通过第一微服务的注册信息和第二微服务的注册信息,确定第一机房和第二机房中的网络地址转换设备的类型,以确定对应的目标地址和目标端口,能够基于对应的目标地址和目标端口,实现第一微服务与第二微服务之间的通信连接,以使得第一微服务能够调用第二微服务,避免使用网关代理,提高跨机房的微服务之间的通信效率。
在一些实施例中,若服务器包括有至少两个服务注册接口,上述步骤S201中“从预设注册表中获取第一微服务的注册信息和第二微服务的注册信息”,具体可以通过如下步骤实现:
从预设注册表获取第一微服务的第一来源信息和第二来源信息,作为第一微服务的注册信息;
从预设注册表中获取第二微服务的第三来源信息和第四来源信息,作为第二微服务的注册信息。
其中,第一来源信息为第一微服务上传至第一服务注册接口的信息,第二来源信息为第一微服务上传至第二服务注册接口的信息,第三来源信息为第二微服务上传至第一服务注册接口的信息,第四来源信息为第二微服务上传至第二服务注册接口的信息。
在本实施例中,第一微服务和第二微服务可以向服务器的第一服务注册接口和第二服务注册接口上报各自的注册信息,具体的,注册信息可以是第一微服务的内网IP和端口,由于机房部署有网络地址转换设备,注册信息需要由网络地址转换设备进行地址转换,将注册信息(即内网IP和端口)转换为对外的外部IP和端口,再上传至第一服务注册接口和第二服务注册接口。
其中,当网络地址转换设备在进行地址转换时,若第一机房的网络地址转换设备的类型为锥型,则上传至第一服务注册接口的第一来源信息和上传至第二服务注册接口的第二来源信息是相同的,若第二机房的网络地址转换设备的类型为对称型,则上传至第一服务注册接口的第三来源信息和上传至第二服务注册接口的第四来源信息是不相同的。
本申请实施例通过对比第一微服务分别上传至两个服务注册接口的信息,以及对比第二微服务分别上传至两个服务注册接口的信息,能够简单便捷的确定出第一机房中网络地址转换设备的类型和第二机房中网络地址转换设备的类型。
进一步的,在一些实施例中,上述步骤S202具体可以通过如下步骤实现:
根据第一来源信息中的端口和第二来源信息中的端口,确定第一机房中的网络地址转换设备的类型;
根据第三来源信息中的端口和第四来源信息中的端口,确定第二机房中的网络地址转换设备的类型。
具体的,对于不同类型的网络地址转换设备,上传至第一服务注册接口的信息(即第一来源信息)和上传至第二服务注册接口(即第二来源信息)是可以相同,也可以不同。
示例性的,以锥型的网络地址转换设备为例,上传至第一服务注册接口的信息(即第一来源信息)包括有网络地址转换设备的出口IP和出口Port,上传至第二服务注册接口的信息(即第二来源信息)也包括由网络地址转换设备的出口IP和出口Port。其中,第一来源信息中的出口IP与第二来源信息中的出口IP相同,第一来源信息中的出口Port也与第二来源信息中的出口Port相同。
示例性的,若网络地址转换设备为对称型,则第一来源信息中的出口Port与第二来源信息中的出口Port是不相同的。
本申请实施例通过对比第一来源信息中的端口与第二来源信息中的端口是否相同,以及对比第三来源信息中的端口与第四来源信息中的端口是否相同,可以快速的确定第一机房中的网络地址转换设备的类型和第二机房中的网络地址转换设备的类型。
示例性的,在一些实施例的,网络地址转换设备分为第一类型和第二类型,上述步骤“根据第一来源信息中的端口和第二来源信息中的端口,确定第一机房中的网络地址转换设备的类型”,具体可以通过如下步骤实现:
若第一来源信息的端口与第二来源信息的端口匹配,则确定第一机房中的网络地址转换设备为第一类型;
若第一来源信息的端口与第二来源信息的端口不匹配,则确定第一机房中的网络地址转换设备为第二类型;
进一步的,上述步骤“根据第三来源信息中的端口和第四来源信息中的端口,确定第二机房中的网络地址转换设备的类型”,具体可以通过如下步骤实现:
若第三来源信息的端口与第四来源信息的端口匹配,则确定第二机房中的网络地址转换设备为第一类型;
若第三来源信息的端口与第四来源信息的端口不匹配,则确定第二机房中的网络地址转换设备为第二类型。
在本实施例中,第一类型为锥形,第二类型为对称型。网络地址转换设备是把内部网络私有IP地址转换为外部网络公共IP地址,即一个外部网络公共IP地址,可以对应多个内部网络私有IP地址,若网络地址转换设备的类型为锥型,则上传至第一服务注册接口的第一来源信息与上传至第二服务注册接口的第二来源信息是相同的,即第一来源信息中的出口IP和出口Port与第二来源信息中的出口IP和出口Port是相同的。若网络地址转换设备为对称型,则上传至第一服务注册接口的第一来源信息与上传至第二服务注册接口的第二来源信息是不相同的,即第一来源信息中的出口Port与第二来源信息中的出口Port是不相同的。
本申请实施例通过将第一来源信息中端口与第二来源信息中的端口进行对比,以及将第三来源信息中的端口与第四来源信息中的端口进行对比,能够快速的确定出第一机房和第二机房中的网络地址转换设备属于第一类型或第二类型。
进一步的,在一些实施例中,上述步骤“根据各个机房中的网络地址转换设备的类型,获取相应的目标地址和目标端口”,具体可以通过如下步骤实现:
若第一机房中的网络地址转换设备和/或第二机房中的网络地址转换设备为第一类型,则从预设注册表中得到目标地址和目标端口;
若第一机房中的网络地址转换设备和第二机房中的网络地址转换设备为第二类型,则从预设注册表中得到目标地址,以及从第一机房中的网络地址转换设备和第二机房中的地址转换设备中获取目标端口。
在本实施例中,预设注册表中包括有第一微服务的注册信息和第二微服务的注册信息。示例性的,目标地址和目标端口可以来源于第一微服务的注册信息和第二微服务的注册信息,具体的,目标地址可以是第一来源信息中的出口IP、第二来源信息中的出口IP、第三来源信息中的出口IP、第四来源信息中的出口IP。
其中,当网络地址转换设备为第一类型(即锥型)时,目标端口可以是第一来源信息中的出口Port、第二来源信息中的出口Port、第三来源信息中的出口Port、第四来源信息中的出口Port。且第一来源信息中的出口IP与第二来源信息中的出口IP相同,第三来源信息中的出口IP与第四来源信息中的出口IP,第一来源信息中的出口Port与第二来源信息中的出口Port相同,第三来源信息中的出口Port与第四来源信息中的出口Port。
当网络地址转换设备为第二类型(即对称型)时,需要由服务器向第一机房中的网络地址转换设备、第二机房中的网络地址转换设备发送端口开通申请,由第一机房中的网络地址转换设备、第二机房中的网络地址转换设备分别将开通的端口上报至服务器,作为目标端口。
本申请实施例通过确定第一机房和第二机房中的网络地址转换设备的类型,能够获取到不同类型的网络地址转换设备对应的目标地址和目标端口,实现第一微服务与第二微服务之间的点对点通信,不需要使用网关来进行服务调用,减少了网络传输时间,提高了服务调用效率。
进一步的,在一些实施例中,上述“从预设注册表中获取得到目标地址和目标端口”,具体可以通过如下步骤实现:
从预设注册表中获取第一微服务的注册地址和第二微服务的注册地址,作为目标地址;
从预设注册表中获取第一微服务的注册端口和第二微服务中的注册端口,作为目标端口。
在本实施例中,第一微服务的注册地址即第一来源信息或第二来源信息中的出口IP,第一微服务的注册端口即第一来源信息或第二来源信息中的出口Port。第二微服务的注册地址即第三来源信息或第四来源信息中的出口IP,第二微服务的注册端口即第三来源信息或第四来源信息中的出口Port。
即目标地址具体可以包括第一来源信息或第二来源信息中的出口IP、第三来源信息或第四来源信息中的出口IP,目标端口具体可以包括第一来源信息或第二来源信息中的出口Port、第三来源信息或第四来源信息中的出口Port。
本申请实施例通过直接从预设注册表中获取目标地址和目标端口,能够基于UDP打洞技术,建立第一微服务与第二微服务之间的UDP连接,实现第一微服务与第二微服务之间的通信,保证微服务跨机房调用的服务调用效率。
示例性的,在一些实施例中,上述步骤“从预设注册表中得到目标地址,以及从第一机房中的网络地址转换设备和第二机房中的地址转换设备中获取目标端口”,具体可以通过如下步骤实现:
从预设注册表中获取第一微服务的注册地址和第二微服务的注册地址,作为目标地址;
发送端口开通申请至第一机房的网络地址转换设备和第二机房的网络地址转换设备;
获取第一机房的网络地址转换设备和第二机房的网络地址转换设备开通的调用端口,作为目标端口。
其中,端口开通申请用于指示第一机房的网络地址转换设备和第二机房的网络地址转换设备开通调用端口。
具体的,第一微服务的注册地址即第一来源信息或第二来源信息中的出口IP,第二微服务的注册地址第三来源信息或第四来源信息中的出口IP。目标地址包括第一来源信息或第二来源信息中的出口IP、第三来源信息或第四来源信息中的出口IP。
在本实施例中,当第一机房和第二机房的网络地址转换设备为对称型时,服务器将调用第一机房和第二机房中的网络地址转换设备的内外网转换应用程序接口(Application Programming Interface,API)向网络地址转换设备网关的声明端口转发规则,以使得第一机房中的网络地址转换设备和第二机房中的网络地址转换设备分别开通调用端口。
示例性的,目标端口包括第一机房的网络地址转换设备开通的调用端口和第二机房中的网络地址转换设备开通的调用端口。
本申请实施例通过服务器向第一机房和第二机房中的网络地址转换设备下发端口开通申请,以开通调用端口,能够实现第一微服务与第二微服务之间的点对点远程通信,避免使用网关增加网络传输时间,提高通信效率。
示例性的,在上述实施例的基础上,在一些实施例中,上述步骤S204具体可以通过如下步骤实现:
将第一微服务的注册地址和注册端口发送至第二机房的网络地址转换设备;
将第二微服务的注册地址和注册端口发送至第一机房的网络地址转换设备。
在本实施例中,当第一机房和/或第二机房中的网络地址转换设备为锥型时,第一微服务的注册地址和第二微服务的注册地址作为目标地址,第一微服务的注册端口和第二微服务器的注册端口作为目标端口。
示例性的,第一微服务的注册地址可以是第一来源信息或第二来源信息中的出口IP,第一微服务的注册端口可以是第一来源信息或第二来源信息中的出口Port。第二微服务的注册地址可以是第三来源信息或第四来源信息中的出口IP,第二微服务的注册端口可以是第三来源信息或第四来源信息中的出口Port。
本申请实施例通过将第一微服务的注册地址和注册端口发送至第二机房的网络地址转换设备,以及将第二微服务的注册地址和注册端口发送至第一机房的网络地址转换设备,能够实现第一微服务与第二微服务之间的点对点通信。
示例性的,在上述实施例的基础上,在一些实施例中,上述步骤S204具体可以通过如下步骤实现:
将第一微服务的注册地址和第一机房的网络地址转换设备开通的调用端口发送至第二机房的网络转换设备;
将第二微服务的注册地址和第二机房的网络地址转换设备开通的调用端口发送至第一机房的网络转换设备。
在本实施例中,当第一机房和第二机房中的网络地址转换设备为对称型时,第一微服务的注册地址和第二微服务的注册地址作为目标地址,第一机房的网络地址转换设备所开通的调用端口,以及第二机房的网络地址转换设备所开通的调用端口作为目标端口。
在一些实施例中,在上述步骤S201之前,上述微服务调用方法还可以包括如下步骤:
每间隔预设时间周期,获取第一机房的网络地址转换设备上传的地址和端口和第二机房的网络地址转换设备上传的地址和端口;
根据第一机房的网络地址转换设备上传的地址和端口,得到第一微服务的注册信息;
根据第二机房的网络地址转换设备上传的地址和端口,得到第二微服务的注册信息。
在本实施例中,预设时间间隔可以是五秒钟,第一微服务和第二微服务就可以通过跨机房组件SDK以UDP的形式向服务器的两个服务注册接口上报各自的注册信息。
其中,注册信息包括地址和端口,示例性的,地址可以是第一机房或第二机房的网络转换设备的出口IP,端口可以是第一机房或第二机房的网络地址转换设备的出口Port。
图4为本申请实施例提供的微服务调用方法实施例二的流程示意框图,如图4所示,以第二机房中部署的第二微服务对第一机房中部署的第一微服务进行调用为例,若第一机房和/或第二机房中的网络地址转换设备(即图4中的NAT设备)为锥型,则该微服务调用方法具体包括如下步骤:
S401、服务发现接口接收第二微服务的调用请求。
具体的,服务器包括有服务注册接口和服务发现接口,部署在第二机房中的第二微服务先根据服务发现配置,获取服务发现接口中的IP地址和端口,作为目标,发起服务调用请求,示例性的,服务发现接口中的IP地址为10.25.200.20,端口为7003。
其中,在第二微服务调用第一微服务时,第二机房中的NAT设备接收第二微服务的服务调用请求,建立会话3,将第二微服务的内网私有IP地址和端口进行转换,得到出口IP和出口自Port,然后上报转换后的出口IP和出口Port给服务器的服务发现接口,通知服务器第二微服务要调用第一微服务。其中,第二微服务的内网私有IP地址为192.168.0.2,端口为5199,第二机房的NAT设备的出口IP为20.55.12.87,出口Port为3115。
S402、根据服务列表中心,判断NAT设备的类型。
具体的,服务列表中心中存储有第一微服务的注册信息和第二微服务的注册信息,服务器通过服务列表中心的第一微服务的注册信息,即第一微服务的来源1(即第一来源信息)和第一微服务的来源2(即第二来源信息)是否匹配,确定第一机房中的NAT设备的类型。通过第二微服务的注册信息,即第二微服务的来源1(即第三来源信息)和第二微服务的来源2(即第四来源信息)是否匹配,确定第二机房中的NAT设备的类型。
示例性的,第一微服务的来源1由第一机房的NAT设备上传至服务器的第一服务注册接口,第一微服务的来源2由第一机房的NAT设备上传至第二服务注册接口,第二微服务的来源1由第二机房的NAT设备上传至第一服务注册接口,第二微服务的来源2由第二机房的NAT设备上传至第二服务注册接口获取。
当第一来源信息与第二来源信息匹配和/或第三来源信息与第四来源信息匹配时,服务器可以确定第一机房中的NAT设备和/或第二机房中的NAT设备为锥型时。
S403、信息下发。
在本实施例中,服务器可以通过UDP打洞技术,通过RPC连接建立信息下发,实现第一微服务与第二微服务的点对点通信连接。其中,RPC是指远程过程调用(RemoteProcedure Call,RPC)。
服务器通过RPC连接建立下发,将第二微服务的注册信息下发至第一机房的NAT设备,由第一机房的NAT设备建立会话3。同时,服务器将第一微服务的注册信息下发至第二机房,通过RPC-UDP连接管理模块将第一微服务的注册信息发送给第二机房的NAT设备,以建立会话4,最终实现跨机房微服务调用。
其中,第一微服务的注册信息可以是第一机房的NAT设备的出口IP和出口Port,示例性的,第一机房的NAT设备的出口IP为10.244.12.11,出口Port为23125。第二微服务的注册信息可以是第二机房的NAT设备的出口IP和出口Port,示例性的,第二机房的NAT设备的出口IP为20.55.12.87,出口为3115。
示例性的,在本实施例中,当服务器将第二微服务的注册信息下发至第一机房的NAT设备时,第一机房的NAT设备建立内外网地址会话,生成会话3。同时,当服务器将第一微服务的注册信息下发至第二机房的NAT设备时,第二机房的NAT设备建立内外网地址会话,生成会话4,从而建立第一微服务和第二微服务的udp连接,实现点对点连接。
图5为本申请实施例提供的微服务调用方法实施例三的流程示意框图,如图5所示,该以第二机房中部署的第二微服务对第一机房中部署的第一微服务进行调用为例,若第一机房和第二机房中的网络地址转换设备(即图5中的NAT设备)为对称型,则该微服务调用方法具体包括如下步骤:
S501、服务发现接口接收第二微服务的调用请求。
具体的,服务器包括有服务注册接口和服务发现接口,部署在第二机房中的第二微服务先获取服务发现配置,得到服务发现接口中的IP地址和端口,作为目标,发起服务调用请求,示例性的,服务发现接口中的IP地址为10.25.200.20,端口为7003。
其中,在第二机房中的NAT设备接收第二微服务的服务调用请求后,建立会话3,将第二微服务的内网私有IP地址和端口进行转换,然后上报转换后的出口IP和出口Port给服务器的服务发现接口,通知服务器第二微服务要调用第一微服务。其中,第二微服务的内网私有IP地址为192.168.0.2,端口为5199,第二机房的NAT设备的出口IP为20.55.12.87,出口Port为3115和3116。
S502、根据服务列表中心,判断NAT设备的类型。
具体的,服务列表中心存储有第一微服务的注册信息和第二微服务的注册信息,第一微服务的注册信息的来源1与来源2若不相同,则可以判定第一机房中的NAT设备的类型为对称型,第二微服务的注册信息中的来源1与来源2若不相同,则可以判定第二机房中的NAT设备的类型为对称型。
示例性的,第一微服务的注册信息的来源1为:10.244.12.11:23125,第一微服务的注册信息的来源1为:10.244.12.11:23126。其中,来源1中的端口为23125,来源2中的端口为23126,即来源1和来源2不相同。
S503、端口开通申请。
具体的,当第一机房和第二机房中的NAT设备的类型为对称型时,此时服务器需要向第一机房和第二机房的NAT设备分别发起端口开通申请,调用第一机房中的NAT设备的端口转发配置API,向NAT设备网关的声明端口转发规则,建立会话3,以及调用第二机房中的NAT设备的端口转发配置API,向NAT设备网关的声明端口转发规则,建立会话4。以开通第一机房和第二机房中的NAT设备的调用端口,以并将第一机房的NAT设备开通的调用端口下发给第二机房的NAT设备,将第二机房的NAT设备开通的调用端口下发给第一机房的NAT设备。
示例性的,调用端口可以为8888。
S504、信息下发。
在本申请实施例中,在服务器向第二机房下发第一机房的NAT设备开通的调用端口时,同时也从服务器列表中心获取第一机房的NAT设备的出口IP,并将第一机房的NAT设备的出口IP同时下发给第二机房的NAT设备,第二机房的NAT设备相应下发的出口IP和调用端口,通过第二微服务的RPC-UDP连接管理模块,建立第一微服务和第二微服务的连接,从而实现第二微服务与第一微服务之间的通信,完成微服务的调用。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图6为本申请实施例提供的微服务调用装置的结构示意图,该微服务调用装置可以集成在服务器上,也可以独立于服务器且与服务器协同工作实现本申请的技术方案,如图6所示,该微服务调用装置60包括响应模块61、确定模块62、获取模块63和发送模块64。
其中,响应模块61用于响应于第一微服务提交的对第二微服务进行调用的调用请求,从预设注册表中获取第一微服务的注册信息和第二微服务的注册信息。确定模块62用于根据第一微服务的注册信息和第二微服务的注册信息,确定各个机房中的网络地址转换设备的类型。获取模块63用于根据各个机房中的网络地址转换设备的类型,获取相应的目标地址和目标端口。发送模块64,用于将目标地址和目标端口发送至第一微服务和第二微服务。
其中,目标地址和目标端口用于第一微服务调用第二微服务。
示例性的,在一些实施例中,若服务器包括至少两个服务注册接口,则上述响应模块61具体可以用于:
从预设注册表获取第一微服务的第一来源信息和第二来源信息,作为第一微服务的注册信息;
从预设注册表中获取第二微服务的第三来源信息和第四来源信息,作为第二微服务的注册信息。
其中,第一来源信息为第一微服务上传至第一服务注册接口的信息,第二来源信息为第一微服务上传至第二服务注册接口的信息,第三来源信息为第二微服务上传至第一服务注册接口的信息,第四来源信息为第二微服务上传至第二服务注册接口的信息。
可选的,在一些实施例中,上述确定模块62具体可以用于:
根据第一来源信息中的地址和端口和第二来源信息中的地址和端口,确定第一机房中的网络地址转换设备的类型;
根据第三来源信息中的地址和端口和第四来源信息中的地址和端口,确定第二机房中的网络地址转换设备的类型。
可选的,在一些实施例中,若网络地址转换设备的类型包括第一类型和第二类型,则上述确定模块62具体可以用于:
若第一来源信息的端口与第二来源信息的端口匹配,则确定第一机房中的网络地址转换设备为第一类型;
若第一来源信息的端口与第二来源信息的端口不匹配,则确定第一机房中的网络地址转换设备为第二类型;
若第三来源信息的端口与第四来源信息的端口匹配,则确定第二机房中的网络地址转换设备为第一类型;
若第三来源信息的端口与第四来源信息的端口不匹配,则确定第二机房中的网络地址转换设备为第二类型。
可选的,在一些实施例中,上述获取模块63具体可以用于:
若第一机房中的网络地址转换设备和/或第二机房中的网络地址转换设备为第一类型,则从预设注册表中得到目标地址和目标端口;
若第一机房中的网络地址转换设备和第二机房中的网络地址转换设备为第二类型,则从预设注册表中得到目标地址,以及从第一机房中的网络地址转换设备和第二机房中的地址转换设备中获取目标端口。
可选的,在一些实施例中,上述获取模块63具体可以用于:
从预设注册表中获取第一微服务的注册地址和第二微服务的注册地址,作为目标地址;
从预设注册表中获取第一微服务的注册端口和第二微服务中的注册端口,作为目标端口。
可选的,在一些实施例中,上述获取模块63具体可以用于:
从预设注册表中获取第一微服务的注册地址和第二微服务的注册地址,作为目标地址;
发送端口开通申请至第一机房的网络地址转换设备和第二机房的网络地址转换设备,端口开通申请用于指示第一机房的网络地址转换设备和第二机房的网络地址转换设备开通调用端口;
获取第一机房的网络地址转换设备和第二机房的网络地址转换设备开通的调用端口,作为目标端口。
可选的,在一些实施例中,上述发送模块64具体可以用于:
将第一微服务的注册地址和注册端口发送至第二机房的网络地址转换设备;
将第二微服务的注册地址和注册端口发送至第一机房的网络地址转换设备。
可选的,在一些实施例中,上述发送模块64具体可以用于:
将第一微服务的注册地址和第一机房的网络地址转换设备开通的调用端口发送至第二机房的网络转换设备;
将第二微服务的注册地址和第二机房的网络地址转换设备开通的调用端口发送至第一机房的网络转换设备。
示例性的,在一些实施例中,上述微服务调用装置60具体还包括注册信息获取模块,用于:
每间隔预设时间周期,获取第一机房的网络地址转换设备上传的地址和端口和第二机房的网络地址转换设备上传的地址和端口;
根据第一机房的网络地址转换设备上传的地址和端口,得到第一微服务的注册信息;
根据第二机房的网络地址转换设备上传的地址和端口,得到第二微服务的注册信息。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,确定模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
示例性的,本申请实施例还提供一种微服务调用系统,包括第一机房、第二机房和服务器。
其中,第一机房中部署有第一微服务和第一网络地址转换设备,第二机房中部署有第二微服务和第二网络地址转换设备。
第一微服务通过第一网络地址转换设备与服务器进行通信,第二微服务通过第二网络地址转换设备与服务器通信;
服务器用于获取第一微服务上传的注册信息和第二微服务上传的注册信息,根据第一微服务的注册信息和第二微服务的注册信息,实现第一微服务与第二微服务之间的通信。
示例性的,图7为本申请实施例提供的服务器的示意框图。如图7所示,该服务器70包括:至少一个处理器71、存储器72、总线73及通信接口74。
其中,处理器71、通信接口72、以及存储器73通过通信总线74完成相互间的通信。
通信接口72,用于与其它设备进行通信。
处理器71,用于执行存储器73存储的计算机执行指令,使得至少一个处理器执行如上述的方法。
处理器1002可能是中央处理器,或者是特定集成电路(Application SpecificIntegrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。服务器包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器73,用于存放计算机执行指令。存储器73可能包含高速RAM存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
本实施例还提供一种可读存储介质,可读存储介质中存储有计算机指令,当服务器的至少一个处理器执行该计算机指令时,服务器执行上述的各种实施方式提供的微服务调用方法。
本实施例还提供一种程序产品,该程序产品包括计算机指令,该计算机指令存储在可读存储介质中。服务器的至少一个处理器可以从可读存储介质读取该计算机指令,至少一个处理器执行该计算机指令使得服务器实施上述的各种实施方式提供的微服务调用方法。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中,a,b,c可以是单个,也可以是多个。
可以理解的是,在本申请实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (15)

1.一种微服务调用方法,其特征在于,应用于服务器,所述服务器通过第一机房中的网络地址转换设备与第一机房中部署的第一微服务进行通信,所述服务器通过第二机房中的网络地址转换设备与第二机房中部署的第二微服务进行通信,所述方法包括:
响应于第一微服务提交的对第二微服务进行调用的调用请求,从预设注册表中获取所述第一微服务的注册信息和第二微服务的注册信息;
根据所述第一微服务的注册信息和第二微服务的注册信息,确定各个机房中的网络地址转换设备的类型;
根据各个机房中的网络地址转换设备的类型,获取相应的目标地址和目标端口;
将所述目标地址和目标端口发送至第一微服务和第二微服务,所述目标地址和目标端口用于所述第一微服务调用所述第二微服务。
2.根据权利要求1所述的方法,其特征在于,所述服务器包括至少两个服务注册接口,所述从预设注册表中获取所述第一微服务的注册信息和第二微服务的注册信息,包括:
从所述预设注册表获取所述第一微服务的第一来源信息和第二来源信息,作为所述第一微服务的注册信息,所述第一来源信息为所述第一微服务上传至第一服务注册接口的信息,所述第二来源信息为所述第一微服务上传至第二服务注册接口的信息;
从所述预设注册表中获取所述第二微服务的第三来源信息和第四来源信息,作为所述第二微服务的注册信息,所述第三来源信息为所述第二微服务上传至所述第一服务注册接口的信息,所述第四来源信息为所述第二微服务上传至所述第二服务注册接口的信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一微服务的注册信息和第二微服务的注册信息,确定各个机房中的网络地址转换设备的类型,包括:
根据所述第一来源信息中的端口和第二来源信息中的端口,确定所述第一机房中的网络地址转换设备的类型;
根据所述第三来源信息中的端口和第四来源信息中的端口,确定所述第二机房中的网络地址转换设备的类型。
4.根据权利要求2或3所述的方法,其特征在于,所述网络地址转换设备的类型包括第一类型和第二类型,所述根据所述第一来源信息中的端口和第二来源信息中的端口,确定所述第一机房中的网络地址转换设备的类型,包括:
若所述第一来源信息的端口与第二来源信息的端口匹配,则确定所述第一机房中的网络地址转换设备为第一类型;
若所述第一来源信息的端口与第二来源信息的端口不匹配,则确定所述第一机房中的网络地址转换设备为第二类型;
所述根据所述第三来源信息中的端口和第四来源信息中的端口,确定所述第二机房中的网络地址转换设备的类型,包括:
若所述第三来源信息的端口与第四来源信息的端口匹配,则确定所述第二机房中的网络地址转换设备为第一类型;
若所述第三来源信息的端口与第四来源信息的端口不匹配,则确定所述第二机房中的网络地址转换设备为第二类型。
5.根据权利要求4所述的方法,其特征在于,所述根据各个机房中的网络地址转换设备的类型,获取相应的目标地址和目标端口,包括:
若所述第一机房中的网络地址转换设备和/或所述第二机房中的网络地址转换设备为第一类型,则从所述预设注册表中得到目标地址和目标端口;
若所述第一机房中的网络地址转换设备和所述第二机房中的网络地址转换设备为第二类型,则从所述预设注册表中得到目标地址,以及从所述第一机房中的网络地址转换设备和第二机房中的地址转换设备中获取目标端口。
6.根据权利要求5所述的方法,其特征在于,所述从所述预设注册表中获取得到目标地址和目标端口,包括:
从所述预设注册表中获取所述第一微服务的注册地址和所述第二微服务的注册地址,作为所述目标地址;
从所述预设注册表中获取所述第一微服务的注册端口和所述第二微服务中的注册端口,作为所述目标端口。
7.根据权利要求5所述的方法,其特征在于,所述从所述预设注册表中得到目标地址,以及从所述第一机房中的网络地址转换设备和第二机房中的地址转换设备中获取目标端口,包括:
从所述预设注册表中获取所述第一微服务的注册地址和所述第二微服务的注册地址,作为所述目标地址;
发送端口开通申请至所述第一机房的网络地址转换设备和第二机房的网络地址转换设备,所述端口开通申请用于指示所述第一机房的网络地址转换设备和第二机房的网络地址转换设备开通调用端口;
获取所述第一机房的网络地址转换设备和第二机房的网络地址转换设备开通的调用端口,作为所述目标端口。
8.根据权利要求6所述的方法,其特征在于,所述将所述目标地址和目标端口发送至第一微服务和第二微服务,包括:
将所述第一微服务的注册地址和注册端口发送至所述第二机房的网络地址转换设备;
将所述第二微服务的注册地址和注册端口发送至所述第一机房的网络地址转换设备。
9.根据权利要求7所述的方法,其特征在于,所述将所述目标地址和目标端口发送至第一微服务和第二微服务,包括:
将所述第一微服务的注册地址和第一机房的网络地址转换设备开通的调用端口发送至所述第二机房的网络转换设备;
将所述第二微服务的注册地址和第二机房的网络地址转换设备开通的调用端口发送至所述第一机房的网络转换设备。
10.根据权利要求1所述的方法,其特征在于,所述从预设注册表中获取所述第一微服务的注册信息和第二微服务的注册信息之前,还包括:
每间隔预设时间周期,获取所述第一机房的网络地址转换设备上传的地址和端口和所述第二机房的网络地址转换设备上传的地址和端口;
根据所述第一机房的网络地址转换设备上传的地址和端口,得到所述第一微服务的注册信息;
根据所述第二机房的网络地址转换设备上传的地址和端口,得到所述第二微服务的注册信息。
11.一种微服务调用装置,其特征在于,包括:
响应模块,用于响应于第一微服务提交的对第二微服务进行调用的调用请求,从预设注册表中获取所述第一微服务的注册信息和第二微服务的注册信息;
确定模块,用于根据所述第一微服务的注册信息和第二微服务的注册信息,确定各个机房中的网络地址转换设备的类型;
获取模块,用于根据各个机房中的网络地址转换设备的类型,获取相应的目标地址和目标端口;
发送模块,用于将所述目标地址和目标端口发送至第一微服务和第二微服务,所述目标地址和目标端口用于所述第一微服务调用所述第二微服务。
12.一种服务器,其特征在于,包括存储器和至少一个处理器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-10任一项所述的方法。
13.一种微服务调用系统,其特征在于,包括:第一机房、第二机房和服务器,所述第一机房中部署有第一微服务和第一网络地址转换设备,所述第二机房中部署有第二微服务和第二网络地址转换设备,所述第一微服务通过所述第一网络地址转换设备与所述服务器进行通信,所述第二微服务通过所述第二网络地址转换设备与所述服务器通信;
所述服务器用于获取第一微服务上传的注册信息和第二微服务上传的注册信息,根据所述第一微服务的注册信息和第二微服务的注册信息,实现所述第一微服务与第二微服务之间的通信。
14.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机指令,所述计算机指令被处理器执行时用于实现如权利要求1-10任一项所述的方法。
15.一种程序产品,包括计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-10任一项所述的方法。
CN202110750838.2A 2021-07-01 2021-07-01 微服务调用方法、装置、服务器和系统 Active CN113542244B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110750838.2A CN113542244B (zh) 2021-07-01 2021-07-01 微服务调用方法、装置、服务器和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110750838.2A CN113542244B (zh) 2021-07-01 2021-07-01 微服务调用方法、装置、服务器和系统

Publications (2)

Publication Number Publication Date
CN113542244A true CN113542244A (zh) 2021-10-22
CN113542244B CN113542244B (zh) 2023-08-08

Family

ID=78126572

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110750838.2A Active CN113542244B (zh) 2021-07-01 2021-07-01 微服务调用方法、装置、服务器和系统

Country Status (1)

Country Link
CN (1) CN113542244B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114222003A (zh) * 2021-12-06 2022-03-22 Oppo广东移动通信有限公司 服务调用方法、系统、装置、设备及存储介质
CN115396482A (zh) * 2022-08-15 2022-11-25 焦点科技股份有限公司 一种跨机房单点服务调用方法

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1968194A (zh) * 2006-06-09 2007-05-23 华为技术有限公司 穿越网络地址转换的方法
CN101651721A (zh) * 2008-08-14 2010-02-17 百度在线网络技术(北京)有限公司 网络地址转换设备类型的判断方法和系统
CN103024095A (zh) * 2012-11-23 2013-04-03 北京百度网讯科技有限公司 数据中心系统及数据中心提供服务方法
WO2018014657A1 (zh) * 2016-07-20 2018-01-25 中兴通讯股份有限公司 一种统一门户方法、装置及系统
CN109510882A (zh) * 2018-11-19 2019-03-22 网易(杭州)网络有限公司 游戏客户端之间的通信方法、装置、存储介质和电子装置
CN109582472A (zh) * 2018-10-19 2019-04-05 华为技术有限公司 一种微服务处理方法及设备
CN109962987A (zh) * 2017-12-22 2019-07-02 杭州萤石软件有限公司 一种通信连接的建立方法、装置及系统
CN110048879A (zh) * 2019-03-12 2019-07-23 平安医疗健康管理股份有限公司 微服务注册方法、装置、电子设备和计算机可读存储介质
CN110225131A (zh) * 2019-06-19 2019-09-10 广州小鹏汽车科技有限公司 一种服务调用方法和装置
US20190394286A1 (en) * 2018-06-25 2019-12-26 Verizon Patent And Licensing Inc. Intelligent programmable policies for network functions
CN112134826A (zh) * 2019-06-24 2020-12-25 华为技术有限公司 一种通信方法以及相关设备
CN112887279A (zh) * 2021-01-13 2021-06-01 太平金融科技服务(上海)有限公司 微服务调用方法、装置、计算机设备和存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1968194A (zh) * 2006-06-09 2007-05-23 华为技术有限公司 穿越网络地址转换的方法
CN101651721A (zh) * 2008-08-14 2010-02-17 百度在线网络技术(北京)有限公司 网络地址转换设备类型的判断方法和系统
CN103024095A (zh) * 2012-11-23 2013-04-03 北京百度网讯科技有限公司 数据中心系统及数据中心提供服务方法
WO2018014657A1 (zh) * 2016-07-20 2018-01-25 中兴通讯股份有限公司 一种统一门户方法、装置及系统
CN109962987A (zh) * 2017-12-22 2019-07-02 杭州萤石软件有限公司 一种通信连接的建立方法、装置及系统
US20190394286A1 (en) * 2018-06-25 2019-12-26 Verizon Patent And Licensing Inc. Intelligent programmable policies for network functions
CN109582472A (zh) * 2018-10-19 2019-04-05 华为技术有限公司 一种微服务处理方法及设备
CN109510882A (zh) * 2018-11-19 2019-03-22 网易(杭州)网络有限公司 游戏客户端之间的通信方法、装置、存储介质和电子装置
CN110048879A (zh) * 2019-03-12 2019-07-23 平安医疗健康管理股份有限公司 微服务注册方法、装置、电子设备和计算机可读存储介质
CN110225131A (zh) * 2019-06-19 2019-09-10 广州小鹏汽车科技有限公司 一种服务调用方法和装置
CN112134826A (zh) * 2019-06-24 2020-12-25 华为技术有限公司 一种通信方法以及相关设备
CN112887279A (zh) * 2021-01-13 2021-06-01 太平金融科技服务(上海)有限公司 微服务调用方法、装置、计算机设备和存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114222003A (zh) * 2021-12-06 2022-03-22 Oppo广东移动通信有限公司 服务调用方法、系统、装置、设备及存储介质
WO2023103759A1 (zh) * 2021-12-06 2023-06-15 Oppo广东移动通信有限公司 服务调用方法、系统、装置、设备及存储介质
CN115396482A (zh) * 2022-08-15 2022-11-25 焦点科技股份有限公司 一种跨机房单点服务调用方法
CN115396482B (zh) * 2022-08-15 2024-05-28 焦点科技股份有限公司 一种跨机房单点服务调用方法

Also Published As

Publication number Publication date
CN113542244B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
CN109451084B (zh) 一种服务访问方法及装置
US9143421B2 (en) Network system capable of implementing stun with the assistance of two network devices and method thereof
EP1892929B1 (en) A method, an apparatus and a system for message transmission
CN101965712B (zh) 用于多重同时连接的对称网络地址转换器的穿越
US8631155B2 (en) Network address translation traversals for peer-to-peer networks
US8838771B2 (en) Enabling VoIP calls to be initiated when a call server is unavailable
CN113542244B (zh) 微服务调用方法、装置、服务器和系统
WO2020253631A1 (zh) Ip地址的配置方法、设备及系统
JP2005525750A (ja) ネットワークアドレス変換(nat)によるピアツーピアネットワーク通信
CN112637364B (zh) 建立p2p连接的方法、客户端及系统
US10212126B2 (en) System for mediating connection
CN114501593B (zh) 网络切片接入方法、装置、系统和存储介质
US7031327B2 (en) Network application association
US8228913B2 (en) Implementing system to system communication in a switchless non-IB compliant environment using InfiniBand multicast facilities
CN112491984B (zh) 基于虚拟网桥的容器编排引擎集群管理系统
CN111800341B (zh) 一种跨路由器终端通信方法及装置
CN111541765B (zh) 一种用于多级路由调度的方法及系统
RU2687215C1 (ru) Способ и устройство для передачи информации о функциях коммутатора openflow
Wendt et al. Proxying ROS communications—enabling containerized ROS deployments in distributed multi-host environments
CN113765801B (zh) 应用于数据中心的报文处理方法和装置、电子设备和介质
US20080031242A1 (en) Fully distributed, scalable infrastructure, communication system
CN115225634B (zh) 虚拟网络下的数据转发方法、装置及计算机程序产品
WO2022089412A1 (zh) 一种通信方法及装置
JPH1013471A (ja) ネットワーク間接続方式およびドメインネーム管理方法
CN115361204A (zh) 边缘场景下共享公网ip的网络隔离方法及装置

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