CN113301116A - 微服务应用跨网络通信方法、装置、系统及设备 - Google Patents

微服务应用跨网络通信方法、装置、系统及设备 Download PDF

Info

Publication number
CN113301116A
CN113301116A CN202110422610.0A CN202110422610A CN113301116A CN 113301116 A CN113301116 A CN 113301116A CN 202110422610 A CN202110422610 A CN 202110422610A CN 113301116 A CN113301116 A CN 113301116A
Authority
CN
China
Prior art keywords
service
proxy
micro
container
proxy 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.)
Pending
Application number
CN202110422610.0A
Other languages
English (en)
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.)
Alibaba Innovation Co
Original Assignee
Alibaba Singapore Holdings Pte 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 Alibaba Singapore Holdings Pte Ltd filed Critical Alibaba Singapore Holdings Pte Ltd
Priority to CN202110422610.0A priority Critical patent/CN113301116A/zh
Publication of CN113301116A publication Critical patent/CN113301116A/zh
Pending legal-status Critical Current

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • 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/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了微服务应用跨网络通信方法、装置、系统及设备。其中,所述系统使得开发人员可通过程序编辑器在本地设备中启动微服务,通过IDE插件启动的第一代理服务和PaaS平台的第二代理相连接,会自动打通网络,部署在私有网络中的微服务应用可通过IDE插件提供的通信代理服务与云平台上处于其它网络中的微服务进行相互通信;因此,可以有效提升微服务跨网络通信效率。此外,这种处理方式还使得只有微服务或者容器内的流量可跨网络通信,本地设备上其余的流量不受影响,如开发人员在本地使用上述插件部署微服务时,还可以同时进行正常网络办公。

Description

微服务应用跨网络通信方法、装置、系统及设备
技术领域
本申请涉及云计算技术领域,具体涉及微服务应用跨网络通信方法、装置及系统,以及电子设备。
背景技术
随着信息基础设施的普及,越来越多企业选择将其微服务应用部署在云厂商提供的云计算虚拟化设施上。PaaS(Platform as a Service,平台即服务)作为一种高效的云计算平台,可用于简化和自动化整个应用程序生命周期管理,包括开发、部署和运行,降低企业IT基础设施支出,减少应用开发和运维成本及时间。
在实际应用中,企业开发人员在使用PaaS平台提供的程序编辑器IDE编辑完成微服务应用后,通常会将微服务应用部署在本地终端设备上对其进行测试,避免频繁地将微服务应用部署到远端PaaS平台进行测试。在这种情况下,在本地终端设备上运行的微服务应用处于私有网络中,但远端外部网络中的微服务应用(如在PaaS平台上托管的微服务应用,在其它终端设备上部署测试的微服务应用)无法直接访问该私有网络中的微服务应用。目前,为了使得处于不同网络中的多个微服务应用之间能够相互通信,以完成对部署在本地终端设备上的微服务应用的测试处理,主要采用虚拟专用网络VPN方式打通网络,实现不同网络中的微服务应用之间跨网络通信。
然而,在实现本发明过程中,发明人发现上述基于VPN的技术方案至少存在如下问题:1)配置成本高,影响测试效率,从而影响微服务跨网络通信效率:一方面是开发人员通过IDE在本地启动应用时需要进行VPN相关配置,其中所带来的配置成本已经大于将程序上传PaaS平台进行部署的成本;另一方面是要实现双向通信时,还需在远端PaaS平台上配置路由规则,这些配置操作均会影响测试效率;2)影响开发人员正常办公:VPN作用于整个本地设备,使得开发人员使用的终端设备上所有的流量都会通过VPN转发出去,正常办公等依赖本地网络的功能会受到影响。
发明内容
本申请提供微服务应用跨网络通信方法,以解决现有技术存在的微服务跨网络通信效率较低等问题。本申请另外提供微服务应用跨网络通信装置,及电子设备。
本申请提供一种微服务跨网络通信系统,包括:
微服务程序编辑器插件,用于根据在第一网络的第一设备侧部署第一微服务的指示信息,启动第一代理服务,所述第一代理服务连接云平台侧的第二代理服务;至少根据第一代理服务的服务端口参数,将第一微服务部署在第一设备侧;将第一微服务的通信方式信息注册至云平台,以使得第一微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信;
云平台跨网络通信装置,用于存储处于不同网络中的多个微服务名与其通信方式信息之间的对应关系集;启动第二代理服务。
本申请还提供一种微服务跨网络通信方法,包括:
根据在第一网络的第一设备侧部署第一微服务的指示信息,启动第一代理服务,所述第一代理服务连接云平台侧的第二代理服务;
至少根据第一代理服务的服务端口参数,将第一微服务部署在第一设备侧;
将第一微服务的通信方式信息注册至云平台;
第一微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信。
可选的,所述第一微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信,包括:
第一微服务将针对第二微服务的第一通信数据发送至第一代理服务;
第一代理服务通过第二代理服务将第一通信数据转发至第二微服务。
可选的,所述第二微服务部署在云平台侧;
所述第一微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信,还包括:
第二微服务将针对第一微服务的第二通信数据发送至第二代理服务;
第二代理服务通过第一代理服务将第二通信数据转发至第一微服务。
可选的,所述第二微服务部署在云平台侧;
所述第一微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信,包括:
第一微服务将针对第二微服务的第一通信数据发送至第一代理服务;
第一代理服务通过第二代理服务将第一通信数据转发至第二微服务;
第二微服务将针对第一微服务的第二通信数据发送至第二代理服务;
第二代理服务通过第一代理服务将第二通信数据转发至第一微服务。
可选的,所述第二微服务部署在第二网络的第二设备侧;
所述第一微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信,还包括:
第二微服务将针对第一微服务的第二通信数据发送至第二设备侧的第一代理服务;
第二设备侧的第一代理服务将第二通信数据转发至第二代理服务;
第二代理服务通过第一设备侧的第一代理服务将第二通信数据转发至第一微服务。
可选的,第二代理服务包括至少一级串联的非容器操作平台的代理节点;
所述第一代理服务连接云平台侧的第二代理服务,包括:
通过代理节点逐级连接方式,第一代理服务连接到最后一级代理节点。
可选的,第二代理服务运行在基于容器操作平台的代理容器中;
所述第一代理服务连接云平台侧的第二代理服务,包括:
在容器操作平台集群中创建代理容器;
将代理容器的SSH端口映射到第一设备;
第一代理服务连接映射到第一设备的SSH端口。
可选的,所述第一微服务采用进程模式运行在终端设备上。
可选的,所述第一微服务和所述第一代理服务采用容器模式运行在容器提供的虚拟环境上;
所述方法还包括:
配置容器;
运行容器配置;
从云平台获取第一微服务容器镜像和第一代理服务容器镜像;
根据第一代理服务容器参数,运行第一代理服务容器;
所述至少根据第一代理服务的服务端口参数,将第一微服务部署在第一设备侧,包括:
至少根据共享代理容器网络栈参数,运行第一微服务;
所述第一代理服务连接云平台侧的第二代理服务,包括:
第一代理服务容器中的第一代理服务连接云平台侧的第二代理服务。
可选的,所述服务端口参数包括:第一代理服务的DNS服务端口,第一代理服务的Socks服务端口,第一代理服务的动态端口映射服务端口。
可选的,还包括:
配置云平台密钥;
根据云平台密钥,从云平台下载第一微服务鉴权证书。
可选的,还包括:
从云平台下载第一代理服务的程序。
可选的,云平台中包括多个注册中心,不同注册中心包括至少一个命名空间;
所述方法还包括:
配置与第一微服务对应的注册中心和命名空间。
本申请还提供一种微服务跨网络通信方法,包括:
存储处于不同网络中的多个微服务名与其通信方式信息之间的对应关系集;
启动第二代理服务,所述第二代理服务与终端设备侧的第一代理服务连接,以使得终端设备侧的微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信;
其中,所述终端设备根据在终端设备侧部署微服务的指示信息,启动第一代理服务;根据第一代理服务的服务端口参数,将微服务部署在终端设备侧;将微服务的通信方式信息注册至云平台。
可选的,还包括:
第二微服务应用从云平台存储的对应关系集中,获取第一微服务的通信方式信息;
第二微服务根据第一微服务的通信方式信息,将针对第一微服务的第二通信数据发送至第二代理服务;
第二代理服务通过第一代理服务将第二通信数据转发至第一微服务。
可选的,还包括:
接收微服务注册请求;
存储所述对应关系。
本申请还提供一种程序编辑器插件,包括:
代理服务启动单元,用于根据在第一网络的第一设备侧部署第一微服务的指示信息,启动第一代理服务,所述第一代理服务连接云平台侧的第二代理服务;
微服务启动单元,用于至少根据第一代理服务的服务端口参数,将第一微服务部署在第一设备侧,以使得第一微服务通过第一代理装置和第二代理装置与云平台上的第二微服务进行数据通信;
微服务注册单元,用于将第一微服务的通信方式信息注册至云平台。
本申请还提供一种电子设备,包括:
处理器和存储器;
存储器,用于存储实现根据上述任一项方法的程序,该设备通电并通过所述处理器运行该方法的程序。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各种方法。
本申请还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各种方法。
与现有技术相比,本申请具有以下优点:
本申请实施例提供的微服务跨网络通信系统,通过在PaaS平台的程序编辑器上集成具有跨网络通信代理能力的IDE插件,当在终端设备上启动第一微服务时,触发执行IDE插件,IDE插件在终端设备上启动第一代理服务,此外还在PaaS平台上启动第二代理服务,第一代理服务连接第二代理服务,IDE插件至少根据第一代理服务的服务端口参数,在终端设备上启动第一微服务,并将第一微服务的通信方式信息注册至PaaS平台,PaaS平台存储当前运行的处于不同网络中的微服务名与其通信方式信息之间的对应关系集,这样第一微服务就能通过第一代理服务和第二代理服务与PaaS平台上的第二微服务进行数据通信。采用这种处理方式,至少使得开发人员可通过程序编辑器在本地设备中启动微服务,通过IDE插件启动的第一代理服务和PaaS平台的第二代理相连接,会自动打通网络,部署在私有网络中的微服务应用可通过IDE插件提供的通信代理服务与PaaS平台上处于其它网络中的微服务进行相互通信,避免依赖VPN网络资源进行跨网络通信,无需进行VPN相关配置,也无需在远端PaaS平台上配置路由规则即可实现双向通信;因此,可以有效提升微服务跨网络通信效率。此外,这种处理方式还使得只有微服务或者容器内的流量可跨网络通信,本地设备上其余的流量不受影响,如开发人员在本地使用上述插件部署微服务时,还可以同时进行正常网络办公。
附图说明
图1本申请提供的系统实施例的结构示意图;
图2本申请提供的系统实施例的应用场景示意图;
图3本申请提供的系统实施例的设备交互示意图;
图4本申请提供的系统实施例的代理方式示意图;
图5本申请提供的系统实施例的中间代理的配置界面示意图;
图6本申请提供的系统实施例的基于容器管理平台的代理节点配置界面图;
图7本申请提供的系统实施例的非容器管理平台的代理容器配置界面图;
图8本申请提供的系统实施例的微服务运行环境和代理方案配置界面图;
图9本申请提供的系统实施例的另一代理方式示意图;
图10本申请提供的系统实施例的又一代理方式示意图;
图11本申请提供的系统实施例的再一代理方式示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请中,提供了微服务跨网络通信系统、方法和装置,及电子设备。在下面的实施例中逐一对各种方案进行详细说明。
第一实施例
请参考图1,其为本申请的微服务跨网络通信系统的实施例的结构示意图。本实施例提供的所述系统包括:微服务程序编辑器插件1和云平台跨网络通信装置2。
其中,插件1用于根据在第一网络的第一设备侧部署第一微服务的指示信息,启动第一代理服务,所述第一代理服务连接云平台侧的第二代理服务;至少根据第一代理服务的服务端口参数,将第一微服务部署在第一设备侧;将第一微服务的通信方式信息注册至云平台,以使得第一微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信;相应的,云平台跨网络通信装置2用于存储处于不同网络中的多个微服务名与其通信方式信息之间的对应关系集;启动第二代理服务。
所述微服务是相对于单体应用而言的概念,单体应用将所有功能都打包成在一个独立单元的应用程序中。微服务架构将单体应用分散成多个服务。在微服务架构下,一个用户的请求往往涉及多个内部服务调用。例如,网上超市包括用户服务、商品服务、订单服务、促销服务、数据分析服务等微服务,针对用户在网上超市的下订单请求,微服务内部会产生服务调用。
所述插件1是基于程序编辑器IDE扩展性机制实现的程序编辑器的插件,又称为IDE插件,程序编辑器可在企业局域网内的设备上运行,供开发人员开发微服务使用。插件1可实现在企业局域网的设备侧部署微服务时自动打通微服务通信网络的功能。
相对于云平台所在网络而言,本实施例将用户侧的网络(如第一网络、第二网络等)称为私有网络。为了与云平台侧设备相区分,本实施例将开发人员所处私有网络(如企业局域网)侧的微服务程序开发设备称为本地设备,如本实施例中第一网络中的第一设备、第二网络中的第二设备等。
所述本地设备,包括但不限于个人电脑、笔记本电脑等开发人员使用的程序开发设备。企业开发人员可在其终端设备上使用PaaS云平台提供的程序编辑器IDE开发、部署、测试微服务应用。在实际应用中,开发人员可在本地终端设备上部署微服务应用,此时微服务处于私有网络中,也可将微服务应用部署至PaaS云平台,在PaaS云平台上托管微服务应用。
云平台跨网络通信装置2部署在云平台侧,如PaaS云平台。以PaaS云平台为例,其为一种云计算平台,将软件研发的平台作为一种服务,以软件即服务SaaS(SoftwareasaService)的模式提交给用户。把服务器平台作为一种服务提供的商业模式,通过网络进行程序提供的服务称之为SaaS,而云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了PaaS。PaaS云平台可用于简化和自动化整个应用程序生命周期管理,包括开发、部署和运行,降低IT基础设施支出,减少应用开发和运维成本及时间。
请参考图2,其为本申请的微服务跨网络通信系统的实施例的应用场景图。在本实施例中,企业的微服务开发人员可在其终端设备(如私有网络1中的设备1等)上使用PaaS平台的程序编辑器IDE开发微服务,然后要对该微服务进行测试,为了避免频繁地将微服务上传部署到远端PaaS平台进行测试,于是在本地设备上部署微服务,因此本地微服务处于私有网络中。在测试过程中,本地微服务要与远端PaaS平台托管的其它相关微服务、或者其它私有网络中的微服务进行通信,为了使得处于不同网络中的微服务间可以跨网络通信,本实施例提供的系统在程序编辑器上集成具有跨网络通信代理能力的IDE插件1,程序开发人员使用IDE在本地设备上运行微服务时,处于私有网络的微服务将自动通过中间代理连接到远端PaaS平台的指定微服务运行环境中。
由图2可见,插件1在本地设备上起一个提供第一代理服务的本地代理进程,处于私有网络中的本地微服务应用可通过本地代理进程与PaaS平台上托管的其它微服务应用进行相互通信。相应的,PaaS平台上会起一个提供第二代理服务的中间代理,PaaS平台托管的微服务应用可通过中间代理访问注册中心存储的微服务通信地址信息,PaaS平台托管的微服务应用可根据从注册中心获得的处于私有网络中的本地微服务应用的通信地址信息,通过中间代理与处于私有网络中的本地微服务应用进行跨网络的数据通信。
请参考图3,其为本申请的微服务跨网络通信系统的实施例的设备交互示意图。在本实施例中,第一微服务的开发人员要在其所处私有网络的本地设备中部署第一微服务,本地设备根据在私有网络的设备侧部署第一微服务的指示信息,启动第一代理服务,所述第一代理服务连接云平台侧启动的第二代理服务;本地设备中IDE插件1根据第一代理服务的服务端口参数,将第一微服务部署在本地设备侧,并将第一微服务的通信方式信息注册至云平台。具体实施时,第一代理服务可向PaaS云平台发送微服务注册请求,PaaS云平台响应该请求,存储处于不同网络中的微服务名与其通信方式信息之间的对应关系。此时,处于不同网络的微服务之间可通过第一代理服务和第二代理服务进行数据通信。
具体实施时,当部署在本地的第一微服务要与外网中的第二微服务进行通信时,第一代理服务可将第一微服务针对第二微服务的通信数据发送给第二代理服务,第二代理服务将该通信数据转发给第二微服务。在第二微服务进行相应处理后,将其针对第一微服务的通信数据发送至第二代理服务,第二代理服务将该通信数据转发给第一代理服务,第一代理服务再将该通信数据发送给第一微服务。
具体实施时,当第二微服务要与第一微服务进行通信时,可分为两种情况:第一种情况为第二微服务部署在云平台侧,第二种情况为第二微服务部署在另一个私有网络的设备侧。
对于上述第一种情况,第二微服务可将针对第一微服务的第二通信数据发送至第二代理服务,第二代理服务可从云平台存储的所述对应关系中获取第一微服务的通信方式信息,并根据该通信方式信息,通过第一代理服务将第二通信数据转发至第一微服务。
对于上述第二种情况,第二微服务可将针对第一微服务的第二通信数据发送至与第二微服务对应的第一代理服务,该第一代理服务部署在运行第二微服务的第二设备侧;第二设备侧的第一代理服务将第二通信数据转发至第二代理服务;第二代理服务通过第一设备侧第一代理服务将第二通信数据转发至第一微服务。
本申请实施例提供的系统中,所述第一微服务可采用进程模式运行在终端设备上,也可采用容器模式运行在容器提供的虚拟环境上。也就是说,部署在本地设备侧的本地微服务可使用“进程模式”和“容器模式”运行。当使用进程模式时,本地微服务将直接以进程形式运行,本地微服务进程直接运行在本地机器上;当使用容器模式时,插件1可运行容器(如Docker容器),然后在容器中运行本地微服务。其中,采用进程模式运行本地微服务的优点在于:无容器软件依赖;采用容器模式运行本地微服务的优点在于:容器提供了虚拟环境支持,使得微服务应用可以运行在指定的虚拟环境下。
本申请实施例提供的系统中,第二代理服务可采用非容器操作平台的代理方式,可以是多级代理模型,所述系统通过打通多级代理通道进行代理转发。在这种情况下,第二代理服务可包括至少一级串联的非容器操作平台的代理节点;相应的,所述第一代理服务连接云平台侧的第二代理服务,可采用如下方式实现:通过代理节点逐级连接方式,第一代理服务连接到最后一级代理节点。其中,最后一级代理节点使用SSH协议代理,其它级代理节点可使用SSH协议或者Socks协议代理。
本申请实施例提供的系统中,第二代理服务还可采用基于容器操作平台的代理方式,如在远端Kubernetes集群中创建代理容器,并打通代理通道。在这种情况下,第二代理服务运行在基于容器操作平台创建的代理容器中;所述第一代理服务连接云平台侧的第二代理服务,可采用如下方式实现:第一代理服务连接所述代理容器中的第二代理服务。
上述两种基于容器操作平台的代理方式(如基于Kubernetes的代理)和非容器操作平台的代理方式,分别适用于云上不同的基础设施。其中,非容器操作平台的代理方式可以基于云上虚拟机(比如ECS)。
综上所述,本申请实施例提供的系统可采用四种代理方式支持微服务跨网络通信,分别为:1、进程模式+非容器操作平台的代理方式;2、进程模式+基于容器操作平台的代理方式;3、容器模式+非容器操作平台的代理方式;4、容器模式+基于容器操作平台的代理方式。下面来说明这四种方式的具体实施方式。需要说明的是,以下具体实施方式中的部分步骤并非必要步骤,如从云平台下载代理程序,配置秘钥,等等。
一、本地微服务运行使用“进程模式”,代理服务采用非容器操作平台的代理方式。
请参考图4,其为本申请实施例的进程模式-非容器操作平台的代理形态的系统架构图。在本实施例中,进程模式下可采用非容器操作平台的代理形态,如非Kubernetes代理形态。以非Kubernetes代理为例,进程模式下非容器操作平台代理的处理流程可包括如下步骤:
1、点击IDE启动微服务应用:使用者点击IDE的“运行”按钮,IDE准备执行指定的微服务程序代码;
2、IDE触发执行插件1:插件基于IDE的扩展性机制开发,使得IDE开始运行实际微服务程序代码前先执行插件1;
3、插件1获取PaaS平台微服务鉴权证书并存储到本地设备上:在PaaS平台上运行的微服务需具备鉴权证书,插件1通过使用PaaS平台秘钥配置中的秘钥调用PaaS平台接口,获取微服务鉴权证书并存储到本地;
在开始使用插件1前,需要配置PaaS平台秘钥,插件将使用所配置的秘钥访问PaaS平台接口。在本实施例中,秘钥配置处理可采用如下方式实施:
点击“新增”按钮时,会在界面上创建一个空的秘钥方案,然后可填写秘钥名称和秘钥信息。秘钥信息为访问PaaS平台接口所需的信息,秘钥名称则用于在本地管理秘钥。
点击“秘钥列表选择框”时,界面会展示已配置的秘钥列表,当选择其中一个秘钥后,界面会展示其秘钥名称及秘钥信息;可在界面上编辑修改原来配置的秘钥名称和秘钥信息。除此之外,通过“秘钥列表选择框”选择秘钥还有一个作用,其表示后续插件将使用该秘钥调用PaaS平台接口。
点击“删除”按钮时,会删除当前在“秘钥列表选择框”所选择的秘钥。
点击“保存”按钮时,所进行的新增、修改或删除的操作将保存到插件中。
点击“取消”按钮时,所进行的新增、修改或删除的操作将会无效。
4、本地是否有代理程序(提供第一代理服务的程序):插件1检测本地是否已存在代理程序,如已经存在则执行步骤6,否则执行步骤5;
5、插件1从PaaS平台下载代理程序并存储到本地:插件从PaaS平台上下载代理程序,保存到本地;
6、插件1运行代理程序(即第一代理服务):插件运行代理程序,并可指定如下参数:
6.1)代理访问方式:包含代理地址和访问凭证;
在本实施例中,代理访问方式可采用如下处理过程进行配置:
6.1.1中间代理(即第二代理服务)配置
6.1.1.1代理方案配置
使用插件1启动的微服务应用将通过中间代理跟PaaS平台上的其它微服务进行相互通信,中间代理可分为Kubernetes类型代理和非Kubernetes类型代理。中间代理的配置界面如图5所示:
点击“新增代理”按钮时,会在界面上创建一个空的代理方案,然后可填写该代理方案的代理名称和多层级代理节点。代理名称仅用于管理代理方案,而多层级代理节点会被插件1用来实现本地微服务应用的数据转发。
点击“代理列表选择框”时,界面会展示已配置的代理方案,当选择其中一个代理方案后,界面会展示其代理名称及多层级代理节点信息;可在界面上编辑修改原来配置的代理名称和多层级代理节点列表。
点击“删除代理”按钮时,会删除当前在“代理列表选择框”所选择的代理方案。
点击“新增节点”、“编辑节点”或“删除节点”可对具体的代理节点进行相应修改,代理节点分为Kubernetes类型和非Kubernetes类型节点。同一个代理方案中不能同时存在Kubernetes代理节点和非Kubernetes代理节点,否则插件1将会提示报错。
点击“保存”按钮时,将会保存修改到对应的代理方案中;点击“取消”按钮时,所进行的代理修改会无效。
6.1.1.2Kubernetes代理节点配置
如果代理方案中存在Kubernetes类型代理节点,那么该Kubernetes代理节点在代理方案中是唯一的一级代理节点,除此外无其他代理节点。点击图5中的“新增节点”或“编辑节点”时,Kubernetes代理节点的新增或修改界面如图6所示:
在“代理类型”中,将会展示当前的代理类型为Kubernetes。
在“配置文件”中,当点击“修改”时界面将展示本地文件选择框,选择后“本地kubeconfig文件路径”将自动被设置成该文件路径。kubeconfig文件是Kubernetes集群管理员为Kubernetes账号生成的证书文件,使用该证书文件可以使用证书中定义的账号来调用Kubernetes API Server的接口。
当“本地kubeconfig文件路径”修改后,插件1将自动使用该配置文件调用Kubernetes API Server接口获取Kubernetes集群的命名空间,然后在界面上“Kubernetes命名空间列表”展示命名空间列表并选择。Kubernetes命名空间为Kubernetes平台定义的概念,通过命名空间可以进行逻辑上的资源区分和鉴权。
本节所设置的“本地kubeconfig文件路径”和“Kubernetes命名空间”将会被插件1用来在Kubernetes中设置代理资源。
6.1.1.3非Kubernetes代理节点配置
对于非Kubernetes代理方案,可使用多层级代理节点进行串联,本地微服务数据将通过一级代理转发到二级代理,再通过二级代理转发到三级代理,依次类推直到转发到最终目标地址。非Kubernetes代理包含基于Socks协议的代理和基于SSH协议的代理,除最后一级代理必须为SSH协议代理外,其他层级代理可以为Socks代理或SSH代理。特殊地,如果只有一级代理节点,那么该级代理节点必须为SSH代理。
点击图5中的“新增节点”或“编辑节点”时,非Kubernetes代理节点配置的界面如图7所示,代理类型将展示当前代理节点协议类型,可在代理地址和访问凭证中设置相应代理的访问信息。
6.1.2微服务运行环境及代理方案配置
本地微服务需配置微服务运行环境和代理方案配置,插件提供了可视化的界面来设置,整体示意图如图8所示,下面来分别说明微服务运行环境和代理方案配置。
6.1.2.1微服务运行环境配置
微服务应用运行过程中需要向注册中心注册自身的<服务名,通信地址>信息,同时也根据所依赖的服务名查询对应的通信地址并进行调用。PaaS平台中存在多个注册中心运行环境,且每个注册中心均采用命名空间来实现微服务注册发现的逻辑隔离。对于同一个注册中心,不同命名空间下的微服务彼此无法通过服务名来查找通信地址信息。本申请实施例提供可视化的界面来设置本地微服务应用需要进行通信的远端运行环境,即指明使用哪个注册中心和哪个命名空间。
在PaaS平台上,每个微服务都归属于特定应用,应用包含(但不限于)应用标识和应用名称属性。在插件1中,需要配置本地微服务所对应的应用,可通过界面上展示的“本地微服务归属应用”列表进行选择。当选择后,插件1将存储该应用的应用标识和应用名称到本地。
插件1界面上所展示的“注册中心所在区域”、“注册中心命名空间”和“本地微服务归属应用”均为列表,且可自由选择。列表中的数据均使用PaaS平台秘钥配置中的秘钥来调用PaaS平台接口获取。
6.1.2.2代理方案配置
插件1界面中的“本地微服务中间代理方案”会以列表形式展示上述中间代理配置中所配置的代理方案,可在界面上自由选择代理方案。
至此,对6.1)代理访问方式的配置方式进行了说明。
6.2)指定代理程序(提供第一代理服务)的DNS服务端口;详见步骤8.1;
6.3)指定代理程序的Socks服务端口;详见步骤8.2;
6.4)指定代理程序的动态端口映射服务端口;详见步骤8.3;
6.5)本地微服务应用的服务端口;详见步骤9;
7、代理程序(第一代理服务)连接远端中间代理(第二代理服务):代理程序使用步骤6.1所传入的代理访问地址和访问凭证来连接远端中间代理。如远端中间代理存在多级,那么代理程序首先连接第一级代理,再通过第一级代理连接第二级代理,以此类推最终连接到最后一级代理。每一级代理协议可以为Socks协议或SSH协议,但最后一级代理协议类型必须为SSH协议。
8、代理程序提供本地DNS服务、Socks服务和动态端口映射服务:代理程序在本地提供DNS服务、Socks服务和动态端口映射服务,说明如下:
8.1、本地DNS服务:代理程序使用DNS协议在本地监听步骤6.2中传入的DNS端口。当代理程序通过该端口接收到域名解析请求后,将请求中的域名通过远端中间代理进行域名解析,并将解析后的IP地址进行响应。
8.2、本地Socks服务:代理程序使用Socks协议监听步骤6.c中传入的Socks服务端口。当代理程序通过该端口接收到连接后,将使用Socks协议进行连接握手;握手通过后,将Socks请求的目标地址通过远端中间代理进行连接,并进一步将接收到的请求通过远端中间代理转发到目标地址;
8.3、本地动态端口映射服务:代理程序使用HTTP协议在本地监听步骤6.d中传入的动态端口映射服务端口。当代理程序通过该端口接收到HTTP请求后,将解析请求中的<目标IP,目标端口,本地IP,本地端口>参数对;然后在本地以TCP协议监听<本地IP,本地端口>,将该端口接收到的数据通过远端中间代理转发给<目标IP,目标端口>;
9、代理程序在远端最后一级代理中监听TCP端口,并将该端口接收的数据转发给本地微服务的服务端口:代理程序通过步骤6.5来知晓本地微服务应用的服务端口。然后代理程序在远端最后一级代理中寻找空闲的TCP端口并且监听该端口;当该端口接收到连接数据时,会通过中间代理和代理程序转发到本地微服务的服务端口。代理程序会通过标准输出来输出最后一级代理的IP地址,以及在代理上监听的TCP端口。
10、插件通过IDE扩展性机制注入PaaS平台微服务鉴权证书、PaaS平台应用身份信息和代理参数到原微服务应用启动参数中:插件通过IDE扩展性机制注入参数:
10.1、PaaS平台微服务鉴权证书:该参数通过步骤3设置;
10.2、PaaS平台应用身份信息:该参数为本地微服务所归属的PaaS平台应用,通过6.1.2.1微服务运行环境配置中的“本地微服务归属应用”设置;
10.3、代理参数(即第一代理服务的服务端口参数):步骤6中的代理程序DNS服务端口、Socks服务端口、动态端口映射服务端口;步骤9中的代理程序所在远端代理监听的TCP端口;
10.4、6.1.2.1微服务运行环境配置中配置的远端注册中心和命名空间信息;
11、插件执行完毕,本地微服务应用运行:本方案插件逻辑执行完毕,本地微服务应用获取步骤10中插件设置的参数并开始运行(即:至少根据第一代理服务的服务端口参数,将第一微服务部署在第一设备侧);
12、本地微服务应用将数据请求转发到本地代理程序(即第一代理服务),由代理程序通过远端代理转发至目标地址:本地微服务将数据转发给本地代理程序有如下形式:
12.1、DNS协议形式:微服务应用将域名解析请求数据发送给步骤8.1中代理程序提供的DNS服务。
12.2、Socks协议形式:微服务应用将对目标地址的访问数据使用Socks协议封装,然后发送给步骤8.b中代理程序提供的Socks服务,代理程序从Socks协议中获取原目标地址的访问数据并通过中间代理进行转发。
12.3、动态端口映射形式;微服务应用在对目标地址<目标IP,目标端口>进行访问前,在本地寻找空闲的TCP端口,并组成参数对<目标IP,目标端口,本地IP,本地端口>,调用步骤8.c中代理程序提供的本地动态端口映射服务接口。代理程序负责将本地通信地址<本地IP,本地端口>收到的数据通过中间代理转发给<目标IP,目标端口>。微服务应用将对原目标地址<目标IP,目标端口>的数据发送给<本地IP,本地端口>。
13、本地微服务应用进行服务注册,并开始网络通信:具体地,本地微服务应用有如下行为:
13.1、微服务注册请求:微服务使用步骤10.1中的PaaS平台微服务鉴权证书和步骤10.2中的PaaS平台应用身份信息,向步骤10.4的远端注册中心发起服务注册请求。具体地,微服务注册使用步骤9中代理程序输出的最后一级代理的IP地址和TCP端口作为通信地址进行注册,即注册信息为<服务名,最后一级代理IP地址,代理程序在最后一级代理监听的TCP端口>。注册请求中包含步骤10.4中的注册中心命名空间信息。注册请求可使用Socks协议形式或动态端口映射形式转发给代理程序。
13.2、DNS域名解析请求:此类请求使用DNS协议形式转发给代理程序。
13.3、其他数据访问请求:此类请求可使用Socks协议形式或动态端口映射形式转发给代理程序。
14、结束:至此,通过使用本方案插件,本地微服务成功实现了跟远端环境的跨网络访问。
二、本地微服务运行使用“进程模式”,代理服务采用基于容器操作平台的代理方式。
请参考图9,其为本申请实施例的进程模式-基于容器操作平台的代理形态的系统架构图。在本实施例中,进程模式下可采用基于容器操作平台的代理形态,如Kubernetes代理形态。以Kubernetes代理为例,进程模式下基于容器操作平台代理的处理流程可包括如下步骤:
1、点击IDE启动微服务应用:同上;
2、IDE触发执行插件:同上;
3、插件获取PaaS平台微服务鉴权证书并存储到本地:同上;
4、本地是否有代理程序:插件检测本地是否已存在代理程序,如已经存在则执行步骤6,否则执行步骤5;
5、插件从PaaS平台下载代理程序并存储到本地:同上;
6、插件调用Kubectl程序在Kubernetes集群中创建代理容器:代理程序使用6.1.1中间代理配置中的Kubernetes代理节点访问方式(访问方式包含kubeconfig配置文件路径和Kubernetes命名空间)调用Kubectl程序,Kubectl程序进一步调用Kubernetes APIServer接口以在Kubernetes集群中创建代理容器;
7、插件调用Kubectl程序的端口转发(port-forward)接口将代理容器的SSH端口映射到本地:代理程序使用6.1.1中间代理配置中的Kubernetes代理节点访问方式(访问方式包含kubeconfig配置文件路径和Kubernetes命名空间)调用Kubectl的端口转发(port-forward)接口,将步骤6中的代理容器的SSH端口映射到本地的空闲的TCP端口;
8、插件运行代理程序:插件运行代理程序,并传入如下参数:
8.1、步骤7中Kubernetes代理容器的SSH访问凭证;
8.2、步骤7中将Kubernetes代理容器SSH端口映射到本地的TCP端口;
8.3、指定代理程序的DNS服务端口;详见步骤10.1;
8.4、指定代理程序的Socks服务端口;详见步骤10.2;
8.5、指定代理程序的动态端口映射服务端口;详见步骤10.3;
8.6、本地微服务应用的服务端口;详见步骤11;
9、代理程序使用SSH协议连接映射到本地的SSH端口:代理程序使用步骤8.1中的SSH访问凭证连接步骤8.2的TCP端口;
10、代理程序提供本地DNS服务、Socks服务和动态端口映射服务:同上,说明如下:
10.1、本地DNS服务:代理程序使用DNS协议在本地监听步骤8.3中传入的DNS端口。当代理程序通过该端口接收到域名解析请求后,将请求中的域名通过Kubernetes代理容器进行域名解析,并将解析后的IP地址进行响应。
10.2、本地Socks服务:代理程序使用Socks协议监听步骤8.4中传入的Socks服务端口。当代理程序通过该端口接收到连接后,将使用Socks协议进行连接握手;握手通过后,将Socks请求的目标地址通过Kubernetes代理容器进行连接,并进一步将接收到的请求通过Kubernetes代理容器转发到目标地址;
10.3、本地动态端口映射服务:代理程序使用HTTP协议在本地监听步骤8.5中传入的动态端口映射服务端口。当代理程序通过该端口接收到HTTP请求后,将解析请求中的<目标IP,目标端口,本地IP,本地端口>参数对;然后在本地以TCP协议监听<本地IP,本地端口>,将该端口接收到的数据通过Kubernetes代理容器转发给<目标IP,目标端口>;
11、代理程序在Kubernetes代理容器中监听TCP端口,并将该端口接收的数据转发给本地微服务的服务端口:代理程序通过步骤8.6来知晓本地微服务应用的服务端口。然后代理程序在Kubernetes代理容器中寻找空闲的TCP端口并且监听该端口;当该端口接收到连接数据时,会通过Kubernetes代理容器、KubernetesAPIServer、Kubectl程序和代理程序转发到本地微服务的服务端口。代理程序会通过标准输出来输出Kubernetes代理容器的IP地址,以及监听的TCP端口。
12、插件通过IDE扩展性机制注入PaaS平台微服务鉴权证书、PaaS平台应用身份信息和代理参数到原微服务应用启动参数中:插件通过IDE扩展性机制注入参数:
12.1、PaaS平台微服务鉴权证书:同上;
12.2、PaaS平台应用身份信息:同上;
12.3、代理参数:步骤8.3的DNS服务端口、步骤8.4的Socks服务端口、步骤8.5的动态端口映射服务端口;步骤11中的代理程序所在Kubernetes代理容器中监听的TCP端口;
12.4、在6.1.2.1微服务运行环境配置中配置的远端注册中心和命名空间信息;
13、插件执行完毕,本地微服务应用运行:本方案插件逻辑执行完毕,本地微服务应用获取步骤12中插件设置的参数并开始运行;
14、本地微服务应用将数据请求转发到本地代理程序,由代理程序通过Kubernetes代理容器转发至目标地址:本地微服务将数据转发给本地代理程序有如下形式:
14.1、DNS协议形式:同上。
14.2、Socks协议形式:同上。
14.3、动态端口映射形式;同上。
15、本地微服务应用进行服务注册,并开始网络通信:具体地,本地微服务应用有如下行为:
15.1、微服务注册请求:同上。具体地,微服务注册使用步骤11中代理程序输出的Kubernetes代理容器的IP地址和TCP端口作为通信地址进行注册,即注册信息为<服务名,Kubernetes代理容器IP地址,代理程序在Kubernetes代理容器中监听的TCP端口>。注册请求中包含步骤12.4中的注册中心命名空间信息。注册请求可使用Socks协议形式或动态端口映射形式转发给代理程序。
15.2、DNS域名解析请求:同上。
15.3、其他数据访问请求:同上。
16、结束:至此,通过使用插件,本地微服务成功实现了跟远端环境的跨网络访问。
三、本地微服务运行使用“容器模式”,代理服务采用非容器操作平台的代理方式。
请参考图10,其为本申请实施例的容器模式-非容器操作平台的代理形态的系统架构图。在本实施例中,容器模式下可采用非容器操作平台的代理形态,如非Kubernetes代理形态。以非Kubernetes代理为例,容器模式下非容器操作平台代理的处理流程可包括如下步骤:
1、在IDE中添加插件1提供的容器运行配置:插件1基于IDE扩展性框架提供了自定义的容器运行配置,容器配置可包含如下配置项:
1.1)本地微服务程序包来源:插件1可支持如下两种程序包来源
本地已存在的微服务程序包;
使用IDE对微服务项目进行构建以产生微服务程序包;
1.2)本地微服务容器的EntryPoint和Command;
1.3)本地微服务容器映射到宿主机(即第一设备)的端口列表,列表中的每一项格式为<宿主机端口>:<容器端口>;
1.4)本地微服务容器挂载宿主机的文件目录列表,列表中的每一项格式为<宿主机文件目录路径>:<容器内文件目录路径>;
1.5)本地微服务容器的环境变量列表,列表中的每一项格式为<环境变量键>=<环境变量值>;
2、点击IDE运行容器配置:使用者通过IDE运行步骤1所添加的容器运行配置;
3、IDE触发执行插件1:IDE执行插件1的容器模式逻辑;
4、插件1向PaaS平台拉取本地代理容器镜像和本地微服务容器镜像:插件调用本地Docker容器后台进程接口,向PaaS平台拉取代理容器镜像和微服务容器镜像,并保存到本地。
5、插件1获取PaaS平台微服务鉴权证书并存储到本地:同上;
6、插件1设置本地代理容器参数并运行该容器:插件1设置的本地代理容器参数包含:
6.1)远端中间代理的访问地址和访问凭证:此参数通过6.1.2.2代理方案配置以及6.1.1.3非Kubernetes代理节点配置获得,以环境变量方式传入容器。
6.2)本地微服务应用的服务端口。此参数以环境变量方式传入容器。
7、本地代理容器中的代理程序连接远端中间代理:本地容器中的代理程序使用步骤6.1中的访问地址和访问凭证来连接远端中间代理。
8、本地代理容器中的代理程序进行TCP和DNS流量透明代理,并通过远端中间代理转发到目标地址:代理程序在本地代理容器中提供DNS服务、Socks服务,并实现流量透明代理。
说明如下:
8.1)本地DNS服务和DNS流量透明代理:代理程序使用DNS协议在本地容器中监听空闲的DNS端口。当代理程序通过该端口接收到域名解析请求后,将请求中的域名通过远端中间代理进行域名解析,并将解析后的IP地址进行响应。代理程序在本地代理容器内使用流量透明代理方法劫持DNS流量并转发到该DNS端口。
8.2)本地TCP服务及TCP流量透明代理:代理程序使用TCP协议监听在本地容器中监听空闲的TCP端口。当代理程序通过该端口接收到TCP数据后,分析其TCP数据的原目标地址,然后通过远端中间代理将该TCP数据包转发至目标地址。代理程序在本地代理容器内使用流量透明代理方法劫持TCP流量并转发到该TCP端口。
9、本地代理容器中的代理进程在远端最后一级代理中监听TCP端口,并将该端口接收的数据转发给本地微服务容器的服务端口:本地代理容器中的代理程序通过步骤6.2来知晓本地微服务应用的服务端口,然后代理程序在远端最后一级代理中寻找空闲的TCP端口并且监听该端口;当该端口接收到连接数据时,会通过中间代理和代理程序转发到本地微服务的服务端口。代理程序通过标准输出来输出最后一级代理的IP地址,以及在代理上监听的TCP端口。
10、插件1设置本地微服务容器的启动参数并运行该容器:插件1使用如下参数运行本地微服务容器:
10.1)共享代理容器网络栈参数。该参数使得本地微服务容器和本地代理容器可共享网络栈,实现网络数据互通。
10.2)微服务应用程序包路径。微服务应用程序包通过上述容器运行配置中的“本地微服务程序包来源”获取,并以容器挂载宿主机的文件目录方式挂载至微服务容器中的特定目录下。
10.3)PaaS平台微服务鉴权证书:该参数通过步骤5设置;
10.4)PaaS平台应用身份信息:该参数为本地微服务所归属的PaaS平台应用,通过6.1.2.1微服务运行环境配置中的“本地微服务归属应用”设置;
10.5)步骤9中代理程序输出的最后一级代理的IP地址。此参数以容器环境变量形式传入。
10.6)步骤9中代理程序在最后一级代理所监听的TCP端口。此参数以容器环境变量形式传入。
10.7)在6.1.2.1微服务运行环境配置中配置的远端注册中心和命名空间信息。此参数以容器环境变量形式传入。
11、本地微服务容器中的应用数据请求被透明转发到本地代理容器中的代理程序,由代理程序通过远端中间代理转发至目标地址:本地微服务容器中的微服务应用数据有如下的透明代理形式:
11.1)DNS请求数据:在步骤10.1“共享代理容器网络栈”参数的作用下,被8.1中代理程序设置的DNS透明代理规则劫持,并转发至代理程序所监听的DNS端口。代理程序通过远端中间代理进行DNS解析,并响应回本地微服务容器的应用。
11.2)TCP请求数据:在步骤10.1“共享代理容器网络栈”参数的作用下,被8.b中代理程序设置的TCP透明代理规则劫持,并转发至代理程序所监听的TCP端口。代理程序解析出TCP包的原目标地址,并通过远端中间代理转发至目标地址。
12、本地微服务容器中的应用进行服务注册,并开始网络通信:具体地,本地微服务容器中的应用有如下行为:
12.1)微服务注册请求:微服务使用步骤10.3中的PaaS平台微服务鉴权证书和步骤10.4中的PaaS平台应用身份信息,向步骤10.g的远端注册中心发起服务注册请求。具体地,微服务注册使用步骤9中代理程序输出的最后一级代理的IP地址和TCP端口作为通信地址进行注册,即注册请求为<服务名,最后一级代理IP地址,代理程序在最后一级代理监听的TCP端口>。注册请求中包含步骤10.7中传入的命名空间信息。
12.2)DNS域名解析请求。
12.3)其他数据访问请求。
13、结束:至此,通过使用插件1,在容器模式下,本地微服务成功通过非Kubernetes代理实现了跟远端环境的跨网络访问。
四、本地微服务运行使用“容器模式”,代理服务采用基于容器操作平台的代理方式。
请参考图11,其为本申请实施例的容器模式-基于容器操作平台的代理形态的系统架构图。在本实施例中,进程模式下可采用基于容器操作平台的代理形态,如非Kubernetes代理形态。以非Kubernetes代理为例,容器模式下基于容器操作平台代理的处理流程可包括如下步骤:
1、在IDE中添加插件1提供的容器运行配置:同上;
2、点击IDE运行容器配置:同上;
3、IDE触发执行本方案插件:同上;
4、插件1向PaaS平台拉取本地代理容器镜像和本地微服务容器镜像:插同上。
5、插件1获取PaaS平台微服务鉴权证书并存储到本地:同上;
6、本地是否有代理程序A:插件检测本地是否已存在代理程序A,如已经存在则执行步骤8,否则执行步骤7;
7、插件1从PaaS平台下载代理程序A并存储到本地:插件从PaaS平台上下载代理程序A,保存到本地;
8、插件1调用Kubectl程序在Kubernetes集群中创建代理容器:同上;
9、插件1调用Kubectl程序的端口转发(port-forward)接口将代理容器的SSH端口映射到本地:代理程序使用6.1.1中间代理配置中的Kubernetes代理节点访问方式(访问方式包含kubeconfig配置文件路径和Kubernetes命名空间)调用Kubectl的端口转发(port-forward)接口,将步骤8中的Kubernetes代理容器的SSH端口Port_K(备注:此处Port_K仅用于命名,无特殊含义)映射到本地的空闲的TCP端口Port_L(备注:此处Port_L仅用于命名,无特殊含义);
10、插件1设置本地代理容器参数并运行该容器:插件1设置的本地代理容器参数包含:
10.1)本地微服务应用的服务端口。此参数以环境变量方式传入容器。
10.2)步骤8中Kubernetes代理容器的SSH访问凭证。此参数以环境变量方式传入容器。
10.3)一个指定的TCP端口(详见步骤11)。此参数以环境变量方式传入容器。
10.4)本地微服务应用的服务端口。此参数以环境变量方式传入容器。
10.5)暴露本地代理容器的SSH端口Port_P(备注:此处Port_P仅用于命名,无特殊含义)到宿主机。
11、插件1调用代理程序A,将Kubectl程序映射到本地的端口进一步映射到本地代理容器中:本方案插件调用代理程序A,代理程序A基于步骤10.5中本地代理容器的SSH端口Port_P,使用SSH的远端端口映射机制,将步骤9中映射到本地的TCP端口Port_L,进一步映射到本地代理容器中的Port_S
12、本地代理容器中的代理程序B连接Kubernetes代理容器:本地容器中的代理程序B基于SSH协议,使用步骤10.2中的SSH访问凭证,连接通过步骤11映射到容器中的端口Port_S;代理程序B通过此SSH通道可连接到远端的Kubernetes代理容器中。
13、本地代理容器中的代理程序B进行TCP和DNS流量透明代理,并通过Kubernetes代理转发到目标地址:代理程序B在本地代理容器中提供DNS服务、Socks服务,并实现流量透明代理。说明如下:
13.1)本地DNS服务和DNS流量透明代理:代理程序B使用DNS协议在本地容器中监听空闲的DNS端口。当代理程序B通过该端口接收到域名解析请求后,将请求中的域名通过Kubernetes代理进行域名解析,并将解析后的IP地址进行响应。代理程序B在本地代理容器内使用流量透明代理方法劫持DNS流量并转发到该DNS端口。
13.2)本地TCP服务及TCP流量透明代理:代理程序B使用TCP协议监听在本地容器中监听空闲的TCP端口。当代理程序B通过该端口接收到TCP数据后,分析其TCP数据的原目标地址,然后通过Kubernetes代理将该TCP数据包转发至目标地址。代理程序B在本地代理容器内使用流量透明代理方法劫持TCP流量并转发到该TCP端口。
14、本地代理容器中的代理进程在Kubernetes代理中监听TCP端口,并将该端口接收的数据转发给本地微服务微服务容器的服务端口:本地代理容器中的代理程序B通过步骤10.4来知晓本地微服务应用的服务端口,然后代理程序B在Kubernetes代理中寻找空闲的TCP端口并且监听该端口;当该端口接收到连接数据时,会通过Kubernetes代理容器、Kubernetes API Server、Kubectl程序、本地代理程序A、本地代理容器和本地代理容器B层层转发到本地微服务的服务端口。代理程序B通过标准输出来输出Kubernetes代理的IP地址,以及在Kubernetes代理上监听的TCP端口。
15、插件1设置本地微服务容器的启动参数并运行该容器:插件使用如下参数运行本地微服务容器:
15.1)共享代理容器网络栈参数:同上。
15.2)微服务应用程序包路径:同上。
15.3)PaaS平台微服务鉴权证书:同上;
15.4)PaaS平台应用身份信息:同上;
15.5)步骤14中代理程序B输出的Kubernetes代理的IP地址。此参数以容器环境变量形式传入。
15.6)步骤14中代理程序B在Kubernetes代理所监听的TCP端口。此参数以容器环境变量形式传入。
15.7)在6.1.2.1微服务运行环境配置中配置的远端注册中心和命名空间信息。此参数以容器环境变量形式传入。
16、本地微服务容器中的应用数据请求被透明转发到本地代理容器中的代理程序B,由代理程序B通过Kubernetes代理转发至目标地址:本地微服务容器中的微服务应用数据有如下的透明代理形式:
16.1)DNS请求数据:在步骤15.1“共享代理容器网络栈”参数的作用下,被13.1中代理程序B设置的DNS透明代理规则劫持,并转发至代理程序B所监听的DNS端口。代理程序B通过远端中间代理进行DNS解析,并响应回本地微服务容器的应用。
16.2)TCP请求数据:在步骤15.1“共享代理容器网络栈”参数的作用下,被13.2中代理程序B设置的TCP透明代理规则劫持,并转发至代理程序B所监听的TCP端口。代理程序B解析出TCP包的原目标地址,并通过远端中间代理转发至目标地址。
17、本地微服务容器中的应用进行服务注册,并开始网络通信:具体地,本地微服务容器中的应用有如下行为:
17.1)微服务注册请求:微服务使用步骤15.3中的PaaS平台微服务鉴权证书和步骤15.4中的PaaS平台应用身份信息,向步骤15.7的远端注册中心发起服务注册请求。具体地,微服务注册使用步骤14中代理程序B输出的Kubernetes代理容器的IP地址和TCP端口作为通信地址进行注册,即注册请求为<服务名,Kubernetes代理容器IP,代理程序B在Kubernetes代理容器中监听的TCP端口>。注册请求中包含步骤15.g中传入的命名空间信息。
17.2)DNS域名解析请求。
17.3)其他数据访问请求。
18、结束:至此,通过使用本方案插件,在容器模式下,本地微服务成功通过Kubernetes代理实现了跟远端环境的跨网络访问。
至此,对四种具体的代理方式进行了说明。
下表示出了本实施例中PaaS平台存储的微服务注册信息。
Figure BDA0003022732620000191
由该表可见,在PaaS平台中可设置多个注册中心,可以是以企业、应用项目等区分注册中心,如北京研发部门对应注册中心A,杭州研发部门对应注册中心B,深圳研发部门对应注册中心C。每个注册中心可对应多个命名空间,如开发环境对应一个命名空间,生产环境对应一个命名空间。每个命名空间可对应多个微服务。在实际应用中,也可以只设置一个注册中心,只有一个命名空间,即不会微服务进行分组管理。
从上述实施例可见,本申请实施例提供的微服务跨网络通信系统,通过在PaaS平台的程序编辑器上集成具有跨网络通信代理能力的IDE插件,当在终端设备上启动第一微服务时,触发执行IDE插件,IDE插件在终端设备上启动第一代理服务,此外还在PaaS平台上启动第二代理服务,第一代理服务连接第二代理服务,IDE插件至少根据第一代理服务的服务端口参数,在终端设备上启动第一微服务,并将第一微服务的通信方式信息注册至PaaS平台,PaaS平台存储当前运行的处于不同网络中的微服务名与其通信方式信息之间的对应关系集,这样第一微服务就能通过第一代理服务和第二代理服务与PaaS平台上的第二微服务进行数据通信。采用这种处理方式,至少使得开发人员在测试微服务时可通过程序编辑器在本地设备中启动微服务,通过IDE插件启动的第一代理服务和PaaS平台的第二代理相连接,会自动打通网络,部署在私有网络中的微服务应用可通过IDE插件提供的通信代理服务与PaaS平台上处于其它网络中的微服务进行相互通信,避免依赖VPN网络资源进行跨网络通信,无需进行VPN相关配置,也无需在远端PaaS平台上配置路由规则即可实现双向通信;因此,可以有效提升微服务跨网络通信效率。此外,这种处理方式还使得只有微服务或者容器内的流量可跨网络通信,本地设备上其余的流量不受影响,如开发人员在本地使用上述插件部署微服务时,还可以同时进行正常网络办公。
第二实施例
在上述的实施例中,提供了一种微服务应用跨网络通信系统,与之相对应的,本申请还提供一种微服务应用跨网络通信方法,其执行主体包括但不限于开发人员开发程序用的终端设备,也可以是能够实现所述方法的任意设备。本实施例提供的方法与实施例一提供的系统中的终端设备执行的处理相对应,所以描述得比较简单,相关之处参见实施例一的部分说明即可。
本申请另外提供一种微服务应用跨网络通信方法,包括:
步骤1:根据在第一网络的第一设备侧部署第一微服务的指示信息,启动第一代理服务,所述第一代理服务连接云平台侧的第二代理服务。
步骤2:至少根据第一代理服务的服务端口参数,将第一微服务部署在第一设备侧。
所述服务端口参数,包括但不限于:第一代理服务的DNS服务端口,第一代理服务的Socks服务端口,第一代理服务的动态端口映射服务端口。
步骤3:将第一微服务的通信方式信息注册至云平台。
步骤4:第一微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信。
在一个示例中,步骤4可包括如下子步骤:第一微服务将针对第二微服务的第一通信数据发送至第一代理服务;第一代理服务通过第二代理服务将第一通信数据转发至第二微服务。
在一个示例中,所述第二微服务部署在云平台侧;步骤4可包括如下子步骤:第一微服务将针对第二微服务的第一通信数据发送至第一代理服务;第一代理服务通过第二代理服务将第一通信数据转发至第二微服务;第二微服务将针对第一微服务的第二通信数据发送至第二代理服务;第二代理服务通过第一代理服务将第二通信数据转发至第一微服务。
在一个示例中,所述第二微服务部署在第二网络的第二设备侧;步骤4可包括如下子步骤:第二微服务将针对第一微服务的第二通信数据发送至第二设备侧的第一代理服务;第二设备侧的第一代理服务将第二通信数据转发至第二代理服务;第二代理服务通过第一设备侧的第一代理服务将第二通信数据转发至第一微服务。
在一个示例中,第二代理服务包括至少一级串联的非容器操作平台的代理节点;所述第一代理服务连接云平台侧的第二代理服务,可采用如下方式实施:通过代理节点逐级连接方式,第一代理服务连接到最后一级代理节点。
在一个示例中,第二代理服务运行在基于容器操作平台的代理容器中;所述第一代理服务连接云平台侧的第二代理服务,可包括如下子步骤:在容器操作平台集群中创建代理容器;将代理容器的SSH端口映射到第一设备;第一代理服务连接映射到第一设备的SSH端口。
在一个示例中,所述第一微服务采用进程模式运行在终端设备上。
在一个示例中,所述第一微服务和所述第一代理服务采用容器模式运行在容器提供的虚拟环境上;所述方法还可包括如下步骤:配置容器;运行容器配置;从云平台获取第一微服务容器镜像和第一代理服务容器镜像;根据第一代理服务容器参数,运行第一代理服务容器;步骤2可采用如下方式实施:至少根据共享代理容器网络栈参数,运行第一微服务;所述第一代理服务连接云平台侧的第二代理服务,可采用如下方式实施:第一代理服务容器中的第一代理服务连接云平台侧的第二代理服务。
在一个示例中,所述方法还可包括如下步骤:配置云平台密钥;根据云平台密钥,从云平台下载第一微服务鉴权证书。
在一个示例中,所述方法还可包括如下步骤:从云平台下载第一代理服务的程序。
在一个示例中,云平台中包括多个注册中心,不同注册中心包括至少一个命名空间;所述方法还可包括如下步骤:配置与第一微服务对应的注册中心和命名空间。
从上述实施例可见,本申请实施例提供的微服务应用跨网络通信方法,通过在PaaS平台的程序编辑器上集成具有跨网络通信代理能力的IDE插件,使得开发人员可通过程序编辑器在本地设备中启动微服务应用,IDE插件会自动打通网络,该部署在私有网络中的微服务应用可通过上述插件提供的通信代理服务与PaaS平台上处于其它网络中的微服务应用进行相互通信;因此,可以有效提升微服务跨网络通信效率。
第三实施例
在上述的实施例中,提供了一种微服务应用跨网络通信方法,与之相对应的,本申请还提供一种微服务应用跨网络通信装置,又称为程序编辑器IDE插件。该装置是与上述方法实施例二相对应。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供一种微服务应用跨网络通信装置,包括:
代理服务启动单元,用于根据在第一网络的第一设备侧部署第一微服务的指示信息,启动第一代理服务,所述第一代理服务连接云平台侧的第二代理服务;
微服务启动单元,用于至少根据第一代理服务的服务端口参数,将第一微服务部署在第一设备侧,以使得第一微服务通过第一代理装置和第二代理装置与云平台上的第二微服务进行数据通信;
微服务注册单元,用于将第一微服务的通信方式信息注册至云平台;
通信单元,用于第一微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信。
第四实施例
在上述的实施例中,提供了一种微服务应用跨网络通信系统,与之相对应的,本申请还提供一种微服务应用跨网络通信方法,其执行主体包括但不限于PaaS平台,也可以是能够实现所述方法的任意设备。本实施例提供的方法与实施例一提供的系统中的PaaS平台执行的处理相对应,所以描述得比较简单,相关之处参见实施例一的部分说明即可。
本申请另外提供一种微服务应用跨网络通信方法,包括:
步骤1:存储处于不同网络中的多个微服务名与其通信方式信息之间的对应关系集;
步骤2:启动第二代理服务,所述第二代理服务与终端设备侧的第一代理服务连接,以使得终端设备侧的微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信。
其中,所述终端设备根据在终端设备侧部署微服务的指示信息,启动第一代理服务;根据第一代理服务的服务端口参数,将微服务部署在终端设备侧;将微服务的通信方式信息注册至云平台。
在一个示例中,所述方法还可包括如下步骤:第二微服务应用从云平台存储的对应关系集中,获取第一微服务的通信方式信息;第二微服务根据第一微服务的通信方式信息,将针对第一微服务的第二通信数据发送至第二代理服务;第二代理服务通过第一代理服务将第二通信数据转发至第一微服务。
在一个示例中,所述方法还可包括如下步骤:接收微服务注册请求;存储所述对应关系。
第五实施例
在上述的实施例中,提供了一种微服务应用跨网络通信方法,与之相对应的,本申请还提供一种微服务应用跨网络通信装置。该装置是与上述方法实施例四相对应。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供一种微服务应用跨网络通信装置,包括:
存储单元,用于存储处于不同网络中的多个微服务名与其通信方式信息之间的对应关系集;
代理服务启动单元,用于启动第二代理服务,所述第二代理服务与终端设备侧的第一代理服务连接,以使得终端设备侧的微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信;
其中,所述终端设备根据在终端设备侧部署微服务的指示信息,启动第一代理服务;根据第一代理服务的服务端口参数,将微服务部署在终端设备侧;将微服务的通信方式信息注册至云平台。
第六实施例
在上述的实施例中,提供了微服务应用跨网络通信方法,与之相对应的,本申请还提供一种电子设备。该装置是与上述方法的实施例相对应。由于设备实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的设备实施例仅仅是示意性的。
本实施例的一种电子设备,该电子设备包括:处理器和存储器;存储器,用于存储实现根据上述任一项方法的程序,该设备通电并通过所述处理器运行该方法的程序。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (10)

1.一种微服务跨网络通信系统,其特征在于,包括:
微服务程序编辑器插件,用于根据在第一网络的第一设备侧部署第一微服务的指示信息,启动第一代理服务,所述第一代理服务连接云平台侧的第二代理服务;至少根据第一代理服务的服务端口参数,将第一微服务部署在第一设备侧;将第一微服务的通信方式信息注册至云平台,以使得第一微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信;
云平台跨网络通信装置,用于存储处于不同网络中的多个微服务名与其通信方式信息之间的对应关系集;启动第二代理服务。
2.一种微服务跨网络通信方法,其特征在于,包括:
根据在第一网络的第一设备侧部署第一微服务的指示信息,启动第一代理服务,所述第一代理服务连接云平台侧的第二代理服务;
至少根据第一代理服务的服务端口参数,将第一微服务部署在第一设备侧;
将第一微服务的通信方式信息注册至云平台;
第一微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信。
3.根据权利要求2所述的方法,其特征在于,
所述第二微服务部署在云平台侧;
所述第一微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信,包括:
第一微服务将针对第二微服务的第一通信数据发送至第一代理服务;
第一代理服务通过第二代理服务将第一通信数据转发至第二微服务;
第二微服务将针对第一微服务的第二通信数据发送至第二代理服务;
第二代理服务通过第一代理服务将第二通信数据转发至第一微服务。
4.根据权利要求2所述的方法,其特征在于,
第二代理服务包括至少一级串联的非容器操作平台的代理节点;
所述第一代理服务连接云平台侧的第二代理服务,包括:
通过代理节点逐级连接方式,第一代理服务连接到最后一级代理节点。
5.根据权利要求2所述的方法,其特征在于,
第二代理服务运行在基于容器操作平台的代理容器中;
所述第一代理服务连接云平台侧的第二代理服务,包括:
在容器操作平台集群中创建代理容器;
将代理容器的SSH端口映射到第一设备;
第一代理服务连接映射到第一设备的SSH端口。
6.根据权利要求4或者5所述的方法,其特征在于,所述第一微服务采用进程模式运行在终端设备上。
7.根据权利要求4或者5所述的方法,其特征在于,
所述第一微服务和所述第一代理服务采用容器模式运行在容器提供的虚拟环境上;
所述方法还包括:
根据第一代理服务容器参数,运行第一代理服务容器;
所述至少根据第一代理服务的服务端口参数,将第一微服务部署在第一设备侧,包括:
至少根据共享代理容器网络栈参数,运行第一微服务;
所述第一代理服务连接云平台侧的第二代理服务,包括:
第一代理服务容器中的第一代理服务连接云平台侧的第二代理服务。
8.一种微服务跨网络通信方法,其特征在于,包括:
存储处于不同网络中的多个微服务名与其通信方式信息之间的对应关系集;
启动第二代理服务,所述第二代理服务与终端设备侧的第一代理服务连接,以使得终端设备侧的微服务通过第一代理服务和第二代理服务与处于其它网络中的第二微服务进行数据通信;
其中,所述终端设备根据在终端设备侧部署微服务的指示信息,启动第一代理服务;根据第一代理服务的服务端口参数,将微服务部署在终端设备侧;将微服务的通信方式信息注册至云平台。
9.一种程序编辑器插件,其特征在于,包括:
代理服务启动单元,用于根据在第一网络的第一设备侧部署第一微服务的指示信息,启动第一代理服务,所述第一代理服务连接云平台侧的第二代理服务;
微服务启动单元,用于至少根据第一代理服务的服务端口参数,将第一微服务部署在第一设备侧,以使得第一微服务通过第一代理装置和第二代理装置与云平台上的第二微服务进行数据通信;
微服务注册单元,用于将第一微服务的通信方式信息注册至云平台。
10.一种电子设备,其特征在于,包括:
处理器和存储器;
存储器,用于存储实现根据权利要求2至8任一项所述的方法的程序,该设备通电并通过所述处理器运行该方法的程序。
CN202110422610.0A 2021-04-15 2021-04-15 微服务应用跨网络通信方法、装置、系统及设备 Pending CN113301116A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110422610.0A CN113301116A (zh) 2021-04-15 2021-04-15 微服务应用跨网络通信方法、装置、系统及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110422610.0A CN113301116A (zh) 2021-04-15 2021-04-15 微服务应用跨网络通信方法、装置、系统及设备

Publications (1)

Publication Number Publication Date
CN113301116A true CN113301116A (zh) 2021-08-24

Family

ID=77319948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110422610.0A Pending CN113301116A (zh) 2021-04-15 2021-04-15 微服务应用跨网络通信方法、装置、系统及设备

Country Status (1)

Country Link
CN (1) CN113301116A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113934446A (zh) * 2021-12-16 2022-01-14 中电云数智科技有限公司 一种基于容器云平台的微服务配置系统及方法
CN114025207A (zh) * 2021-12-07 2022-02-08 贵阳朗玛视讯科技有限公司 一种基于iptv系统启动apk插件的方法及装置
CN114448686A (zh) * 2022-01-14 2022-05-06 武汉三江中电科技有限责任公司 一种基于微服务的跨网络通信装置与方法
CN114637549A (zh) * 2022-02-22 2022-06-17 阿里巴巴(中国)有限公司 基于服务网格的应用的数据处理方法、系统和存储介质
CN114900550A (zh) * 2022-04-13 2022-08-12 度小满科技(北京)有限公司 一种通信方法以及相关装置
CN115052036A (zh) * 2022-06-06 2022-09-13 国网江苏省电力有限公司泰州供电分公司 一种基于ssh服务框架的无人机巡检指令推送创建方法
CN115134141A (zh) * 2022-06-27 2022-09-30 贵州数联铭品科技有限公司 一种微服务容器集群跨网络通信系统及其通信方法
CN115633073A (zh) * 2022-09-02 2023-01-20 易保网络技术(上海)有限公司 微服务调用方法、电子设备、系统及可读存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180198845A1 (en) * 2017-01-09 2018-07-12 International Business Machines Corporation Local Microservice Development for Remote Deployment
CN111131193A (zh) * 2019-12-10 2020-05-08 四川新网银行股份有限公司 支持多协议异构非代码侵入的分布式服务治理的方法
US20200159557A1 (en) * 2018-11-15 2020-05-21 Netapp, Inc. Methods and systems for providing cloud based micro-services
US20200162380A1 (en) * 2018-11-19 2020-05-21 International Business Machines Corporation Controlling data communication between microservices
CN111194541A (zh) * 2017-10-10 2020-05-22 原子能和能源替代品委员会 用于数据传输的装置和方法
CN111245925A (zh) * 2020-01-09 2020-06-05 北京理工大学 一种用于现代分布式微服务架构的通信方法与系统
CN111431956A (zh) * 2019-01-10 2020-07-17 阿里巴巴集团控股有限公司 跨网络的服务访问方法、设备、系统及存储介质
US10764244B1 (en) * 2019-06-12 2020-09-01 Cisco Technology, Inc. Systems and methods providing a multi-cloud microservices gateway using a sidecar proxy
CN111970337A (zh) * 2020-07-30 2020-11-20 天翼电子商务有限公司 跨云环境下的p2p网络通信构建方法、系统、介质及终端

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180198845A1 (en) * 2017-01-09 2018-07-12 International Business Machines Corporation Local Microservice Development for Remote Deployment
CN111194541A (zh) * 2017-10-10 2020-05-22 原子能和能源替代品委员会 用于数据传输的装置和方法
US20200159557A1 (en) * 2018-11-15 2020-05-21 Netapp, Inc. Methods and systems for providing cloud based micro-services
US20200162380A1 (en) * 2018-11-19 2020-05-21 International Business Machines Corporation Controlling data communication between microservices
CN111431956A (zh) * 2019-01-10 2020-07-17 阿里巴巴集团控股有限公司 跨网络的服务访问方法、设备、系统及存储介质
US10764244B1 (en) * 2019-06-12 2020-09-01 Cisco Technology, Inc. Systems and methods providing a multi-cloud microservices gateway using a sidecar proxy
CN111131193A (zh) * 2019-12-10 2020-05-08 四川新网银行股份有限公司 支持多协议异构非代码侵入的分布式服务治理的方法
CN111245925A (zh) * 2020-01-09 2020-06-05 北京理工大学 一种用于现代分布式微服务架构的通信方法与系统
CN111970337A (zh) * 2020-07-30 2020-11-20 天翼电子商务有限公司 跨云环境下的p2p网络通信构建方法、系统、介质及终端

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114025207A (zh) * 2021-12-07 2022-02-08 贵阳朗玛视讯科技有限公司 一种基于iptv系统启动apk插件的方法及装置
CN113934446B (zh) * 2021-12-16 2022-04-22 中电云数智科技有限公司 一种基于容器云平台的微服务配置系统及方法
CN113934446A (zh) * 2021-12-16 2022-01-14 中电云数智科技有限公司 一种基于容器云平台的微服务配置系统及方法
CN114448686B (zh) * 2022-01-14 2024-01-05 武汉三江中电科技有限责任公司 一种基于微服务的跨网络通信装置与方法
CN114448686A (zh) * 2022-01-14 2022-05-06 武汉三江中电科技有限责任公司 一种基于微服务的跨网络通信装置与方法
CN114637549A (zh) * 2022-02-22 2022-06-17 阿里巴巴(中国)有限公司 基于服务网格的应用的数据处理方法、系统和存储介质
CN114900550A (zh) * 2022-04-13 2022-08-12 度小满科技(北京)有限公司 一种通信方法以及相关装置
CN114900550B (zh) * 2022-04-13 2024-05-07 度小满科技(北京)有限公司 一种通信方法以及相关装置
CN115052036A (zh) * 2022-06-06 2022-09-13 国网江苏省电力有限公司泰州供电分公司 一种基于ssh服务框架的无人机巡检指令推送创建方法
CN115134141B (zh) * 2022-06-27 2023-10-03 贵州数联铭品科技有限公司 一种微服务容器集群跨网络通信系统及其通信方法
CN115134141A (zh) * 2022-06-27 2022-09-30 贵州数联铭品科技有限公司 一种微服务容器集群跨网络通信系统及其通信方法
CN115633073B (zh) * 2022-09-02 2023-11-14 易保网络技术(上海)有限公司 微服务调用方法、电子设备、系统及可读存储介质
CN115633073A (zh) * 2022-09-02 2023-01-20 易保网络技术(上海)有限公司 微服务调用方法、电子设备、系统及可读存储介质

Similar Documents

Publication Publication Date Title
CN113301116A (zh) 微服务应用跨网络通信方法、装置、系统及设备
US11095711B2 (en) DNS Resolution of internal tenant-specific domain addresses in a multi-tenant computing environment
JP7060636B2 (ja) 仮想ネットワークインタフェースオブジェクト
CN107947961B (zh) 基于SDN的Kubernetes网络管理系统与方法
CN112165532B (zh) 节点访问方法、装置、设备及计算机可读存储介质
CN111290865A (zh) 一种服务调用方法、装置、电子设备和存储介质
CN115291964A (zh) 减少无服务器函数启动延迟的机制
JP4620784B2 (ja) 現存するitリソース構造を自動的に複製する方法及びシステム
US10931559B2 (en) Distribution of network-policy configuration, management, and control using model-driven and information-centric networking
JPH09506725A (ja) オブジェクト指向ルール・ベース・プロトコル・システム
CN111371679A (zh) 一种基于kubernetes与Kong实现API网关的方法
WO2019057055A1 (zh) 一种任务处理方法、装置、电子设备及存储介质
WO2023103727A1 (zh) 服务调试的路由方法、电子设备、介质及程序产品
CN109525590B (zh) 数据包的传输方法及装置
US20240089328A1 (en) Systems and methods for dynamic federated api generation
JP7132494B2 (ja) マルチクラウド運用プログラム、およびマルチクラウド運用方法
CN113709810A (zh) 一种网络服务质量的配置方法、设备和介质
US10547590B1 (en) Network processing using asynchronous functions
US10931630B2 (en) System and method for connecting using aliases
WO2021201920A1 (en) Network-based media processing (nbmp) workflow management through 5g framework for live uplink streaming (flus) control
CN115086166A (zh) 计算系统、容器网络配置方法及存储介质
US10785056B1 (en) Sharing a subnet of a logically isolated network between client accounts of a provider network
WO2021232860A1 (zh) 通信方法、装置及系统
CN115378993B (zh) 支持命名空间感知的服务注册与发现的方法和系统
WO2024114645A1 (zh) 一种虚拟化网络功能vnf的实例化方法及装置

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40059141

Country of ref document: HK

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240301

Address after: 51 Belarusian Pasha Road, Singapore, Lai Zan Da Building 1 # 03-06, Postal Code 189554

Applicant after: Alibaba Innovation Co.

Country or region after: Singapore

Address before: Room 01, 45th Floor, AXA Building, 8 Shanton Road, Singapore

Applicant before: Alibaba Singapore Holdings Ltd.

Country or region before: Singapore