用于能够实现第二容器上的反向代理的在第一服务容器内的被植入代理器制造技术

技术编号:17216386 阅读:25 留言:0更新日期:2018-02-08 02:15
呈现了一种由包括被植入代理器的第一软件容器所执行的方法,其中被植入代理器配置成运行在所述第一软件容器中。该方法包括由被植入代理器所执行的下列步骤:解析第一软件容器的因特网协议IP地址和端口;以及在第一分布式哈希表中注册微服务身份、第一软件容器的IP地址和端口,以用于使在第二软件容器中运行的第二被植入代理器能够配置运行在第二软件容器中的反向代理。

An implantable agent in the first service container that can be used to implement the reverse proxy on the second container.

A method executed by the first software container including the implanted agent is presented, wherein the implanted agent is configured to run in the first software container. The method comprises the following steps by the implantation agent performed: first analysis software container internet protocol IP address and port; and the registered micro service identity, the first software container in the first distributed hash table in the IP address and port for the software running in the second containers in the implanted device can reverse proxy second the proxy configuration running in second software in the container.

【技术实现步骤摘要】
【国外来华专利技术】用于能够实现第二容器上的反向代理的在第一服务容器内的被植入代理器
本专利技术涉及用于使用被植入代理器以能够实现反向代理的方法、数据处理系统、计算机程序和计算机程序产品。
技术介绍
在工具和云平台方面存在持续发展,以使得更易于开发新应用和服务,同时还降低与在线托管关联的运营成本。服务的示例能够是基于web的视频会议或者在线合作工具。另一个示例能够是多媒体TV服务或者实际上是能够被容器化的任何应用。为了以成本高效的方式来提供服务,重要的是开发成本、资本支出(Capex)和托管服务的成本、运营支出(Opex)被保持为尽可能低。因此,需要自动管理应用组件,诸如微服务。微服务近来已成为构建现代Web服务的流行架构。通过将复杂单片应用分解为小的独立服务,这变得有可能开发更加可缩放并且对差错更有弹性的应用。例如,如果某个微服务出现故障,则它不影响整个应用(假定微服务在多个实例上被重复)。但是,如果将是单片服务的组成部分出现故障,则整个服务将必须重启。另外,缩放单片服务的唯一方式是通过添加它的更多实例来复制整个单片。另一方面,在微服务架构中,只有需要被缩放的微服务才需要被重复。对于一些应用,动态启动和停止微服务并且仅将它们运行持续有限时间量能够是有意义的。例如,在视频会议应用中,对每个新通信会话或会议室启动新视频混合器微服务能够是有意义的。因此,在按需部署新视频混合器时视频会议应用变得易于横向缩放。另外,如果视频混合器崩溃,则故障被隔离到单个会话,且不影响整个应用的稳定性。反向代理服务器是微服务架构中的重要组件。简言之,反向代理是一种服务器组件,其接收来自客户端(例如Web浏览器客户端)的请求并建立到服务器的新连接,并且然后向客户端再发送服务器应答,使得应答看来像是其源自代理服务器而不是服务器。反向代理服务器常用于实现负荷平衡、高速缓存和管理软件升级。它还能够用来提供对运行于内部网络上的内部组件的外部访问。通常,在许多云环境中,服务器组件,诸如微服务,仅被指派私有IP地址,并且动态地被指派从因特网不可访问的TCP/UDP端口。在这种情况下,反向代理能够用来将外部业务重定向到特定微服务。这要求灵活和可缩放配置框架来动态配置微服务和代理服务器,特别是如果微服务是瞬态的并且频繁地被启动和停止的话,或者如果存在部署的大量微服务的话。软件容器是用于构建有效微服务架构的另一个重要组件。容器使微服务能够是沙箱式的,并且甚至是在同一主机上也与其他微服务独立地运行。与虚拟机形成对照,容器是更轻量的,并且能够即刻启动(类似于标准Unix进程)。软件容器的另一个优点在于,它们提供可靠的执行环境,其允许开发人员在将微服务上传到数据中心之前在本地开发计算机上开发和测试微服务,同时仍然确信容器与在本地运行它们时类似地表现。过去数十年来,已经进行了与配置管理相关的大量工作。动态地重新配置运行于多个节点上的服务器或服务(例如web服务或者微服务)的一种方法是提供全局注册表服务,并且当修改注册表中的配置设置时使用运行于远程服务器上的使用客户端来重新配置服务器。Etcd是专门设计用于配置管理和协调配置操作的分布式数据库的一示例。在Etcd中,客户端能够当修改配置设置时使用悬挂的HTTP请求来获得通知,并且然后执行诸如重新配置和重启底层服务器进程之类的动作。这与提供API(应用编程接口)的Netflix的Eureka相似,API能够由诸如微服务的组件用来向Eureka注册表服务进行注册,并且然后接收重新配置事件。已开发了若干框架以简化服务器进程的重新配置。Confd是使用在数据库后端(诸如Zookeeper或Etcd)中存储的数据来用于使本地配置文件保持为最新的轻量配置管理工具。它允许开发人员表达模板,以便易于修改配置文件和重启服务器进程。还已经进行了提供云环境中的自动配置管理的工作。例如,Bamboo是专门设计用于Mesos/Marathon平台和HAProxy(其是反向代理服务器)的自动配置和服务发现框架。它允许开发人员或操作人员使用与Confd类似的模板语言来表达ACL(访问控制列表)规则。Bamboo服务器则监视底层平台,以及当它接收到来自Marathon的事件时,它相应地重新配置并重启HAProxy服务器至指定的模板。由于模板被存储在ApacheZookeeper中,所以Bamboo能够在一个操作中同步和同时重新配置多个HAProxy服务器。
技术实现思路
目的是提供一种在其中能够无需中央控制的情况下来配置反向代理的解决方案。根据第一方面,呈现一种由包括被植入代理器的第一软件容器所执行的方法,其中被植入代理器配置成运行在所述第一软件容器中。所述方法包括由所述被植入代理器执行的下列步骤:解析所述第一软件容器的因特网协议IP地址和端口;以及在第一分布式哈希表(hashtable)中注册微服务身份、所述第一软件容器的所述IP地址和所述端口,以用于使在第二软件容器中运行的第二被植入代理器能够配置运行在所述第二软件容器中的反向代理。所述注册步骤可还包括注册与所述微服务身份关联的生存时间值。所述注册步骤可以按照小于所述生存时间值的间隔有规律地被重复。所述方法还可包括如下步骤:部署用于配置反向代理服务器的第二软件容器;以及部署所述第一软件容器的更多实例。部署所述第二软件容器和部署所述第一软件容器的更多实例的所述步骤可在所述第一软件容器过载时被执行。根据第二方面,呈现了一种数据处理系统,包括:第一软件容器,所述第一软件容器包括被植入代理器,所述代理器与处理器关联;以及存储器。所述存储器存储有指令,所述指令在由所述处理器执行时使所述代理器执行如下步骤:解析所述第一软件容器的因特网协议IP地址和端口;以及在第一分布式哈希表中注册微服务身份、所述第一软件容器的所述IP地址和所述端口,以用于使在第二软件容器中运行的第二被植入代理器能够配置运行在所述第二软件容器中的反向代理。所述注册指令可包括在由所述处理器执行时使所述代理器还注册与所述微服务身份关联的生存时间值的指令。所述注册指令可以按照小于所述生存时间值的间隔有规律地被重复。所述数据处理系统还可包括在由所述处理器执行时使所述代理器执行如下步骤的指令:部署用于配置反向代理服务器的第二软件容器;以及部署所述第一软件容器的更多实例。所述数据处理还可包括在由所述处理器执行时使所述代理器在所述第一软件容器过载时执行如下步骤的指令:部署用于配置反向代理服务器的第二软件容器;以及部署所述第一软件容器的更多实例。根据第三方面,呈现了一种数据处理系统,其包括:用于解析所述第一软件容器的因特网协议IP地址和端口的部件,所述部件用于解析所述数据处理系统的第一软件容器的被植入代理器的形成部分;以及用于在第一分布式哈希表中注册微服务身份、所述第一软件容器的所述IP地址和所述端口以用于使在第二软件容器中运行的第二被植入代理器能够配置运行在所述第二软件容器中的反向代理的部件,所述部件用于注册所述被植入代理器的形成部分。根据第四方面,呈现了一种用于第一软件容器中的被植入代理器的计算机程序。所述计算机程序包含计算机程序代码,所述计算机程序代码在被植入代理器上运行时使所述被植入代理器执行如下步骤:解析所述第一软件容器的因特网协议IP地址和端口;以本文档来自技高网
...
用于能够实现第二容器上的反向代理的在第一服务容器内的被植入代理器

【技术保护点】
一种由包括被植入代理器的第一软件容器所执行的方法,所述被植入代理器配置成在所述第一软件容器中运行,所述方法包括由所述被植入代理器执行的如下步骤:解析(40)所述第一软件容器的因特网协议IP地址和端口;以及在第一分布式哈希表中注册(42)微服务身份、所述第一软件容器的所述IP地址和所述端口,以用于使运行在第二软件容器中的第二被植入代理器能够配置运行在所述第二软件容器中的反向代理。

【技术特征摘要】
【国外来华专利技术】2015.06.03 US 62/1702741.一种由包括被植入代理器的第一软件容器所执行的方法,所述被植入代理器配置成在所述第一软件容器中运行,所述方法包括由所述被植入代理器执行的如下步骤:解析(40)所述第一软件容器的因特网协议IP地址和端口;以及在第一分布式哈希表中注册(42)微服务身份、所述第一软件容器的所述IP地址和所述端口,以用于使运行在第二软件容器中的第二被植入代理器能够配置运行在所述第二软件容器中的反向代理。2.根据权利要求1所述的方法,其中,所述注册(40)步骤还包括注册与所述微服务身份关联的生存时间值。3.根据权利要求2所述的方法,其中,所述注册(40)步骤以小于所述生存时间值的间隔有规律地被重复。4.根据以上权利要求中的任一项所述的方法,还包括如下步骤:部署(46)用于配置反向代理服务器的第二软件容器;以及部署(48)所述第一软件容器的更多实例。5.根据权利要求4所述的方法,其中,部署(44)所述第二软件容器和部署(48)所述第一软件容器的更多实例的所述步骤在所述第一软件容器过载时被执行。6.一种数据处理系统,包括:第一软件容器,所述第一软件容器包括被植入代理器,所述代理器与处理器关联;以及存储器,其存储有指令,所述指令在由所述处理器执行时使所述代理器执行如下步骤:解析所述第一软件容器的因特网协议IP地址和端口;以及在第一分布式哈希表中注册微服务身份、所述第一软件容器的所述IP地址和所述端口,以用于使在第二软件容器中运行的第二被植入代理器能够配置运行在所述第二软件容器中的反向代理。7.根据权利要求6所述的数据处理系统,其中,所述注册指令包括在由所述处理器执行时使所述代理器还注册与所述微服务身份关联的生存时间值的指令。8.根据权利要求7所述的数据处理系统,其中,所述注册指令以小于所述生存时间值的间隔有规律地被重复。9.根据权利要求6至8中的任一项所述的数据处理系统,还包括在由所述处理器执行时使所述代理器执行如下步骤的指令:部署用于配置反向代理服务器的第二软件容器;以及部署所述第一软件容器的更多实例。10.根据权利要求9所述的数据处理系统,还包括在由所述处理器执行时使所述代理器在所述第一软件容器过载时执行如下步骤的指令:部署用于配置反向代理服务器的第二软件容器;以及部署所述第一软件容器的更多实例。11.一种数据处理系统,包括:用于解析所述第一软件容器的因特网协议IP地址和端口的部件,所述部件用于解析所述数据处理系统的第一软件容器的被植入代理器的形成部分;以及用于在第一分布式哈希表中注册微服务身份、所述第一软件容器的所述IP地址和所述端口以用于使在第二软件容器中运行的第二被植入代理器能够配置运行在所述第二软件容器中的反向代理的部件,所述部件用于注册所述被植入代理器的形成部分。12.一种包含计算机程序代码、用于第一软件容器中的被植入代理器的计算机程序,所述计算机程序代码在被植入代理器上运行时使所述被植入代理器执行如下步骤:解析所述第一软件容器的因特网协议IP地址和端口;以及在第一分布式哈希表中注册微服务身份、所述第一软件容器的所述IP地址和所述端口,以用于使在第二软件容器中运行的第二被植入代理器能够配置运行在所述第二软件容器中的反向代理。13.一种计算机程序产品,包括根据权利要求12的计算机程序...

【专利技术属性】
技术研发人员:D贝格斯特龙J伦德贝格N桑德格伦J克里斯琴森
申请(专利权)人:瑞典爱立信有限公司
类型:发明
国别省市:瑞典,SE

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1