Systems, methods and computer-readable storage media for scaling service discovery in a microservice environment are disclosed. A controller can instantiate a first container instance on the main computing device, which provides the first micro-service of the application. The primary computing device may include a service discovery agent. The controller can identify a set of micro services as a dependency of the first micro service and update the service discovery agent with routing data of a container instance of the set of micro services providing the dependency of the first micro service. The service discovery proxy can use the routing data to route requests from the first container instance to a container instance that provides a set of microservices as a dependency of the first microservice.
【技术实现步骤摘要】
【国外来华专利技术】在微服务环境中缩放服务发现
本公开总地涉及计算机网络领域,更具体地,涉及在微服务环境中缩放服务发现。
技术介绍
基于容器的微服务是一种正在数据中心/云产业中快速采用的架构。基于容器的微服务不是构建单个巨大的单片应用程序,而是将应用程序分成一组较小的互连微服务。在微服务架构中,服务发现起着非常重要的作用,因为容器实例具有动态指派的网络位置,并且由于自动缩放、故障和升级而动态地改变。当前系统利用服务器端发现负载平衡器,其充当将容器实例与提供微服务的其他容器实例连接的代理。然而,要使服务发现工作,代理需要跟踪每个微服务的所有容器实例。在某些情况下,单个应用程序可以包含数百个服务以及数百个提供各自的微服务的容器实例。因此,在部署多个应用程序的数据中心中,每个服务器端发现负载平衡器或代理可能必须跟踪数十万甚至数百万个容器实例。因此,需要改进。附图说明为了描述可以获得本公开的上述特征和其他优点的方式,将通过参考在附图中示出的其特定实施例来呈现上面简要描述的原理的更具体的描述。理解这些附图仅描绘了本公开的示例性实施例,因此将不被认为是限制其范围,通过使用附图用附加特征和细节来描述和解释本文的原理,其中:图1示出了根据主题技术的一些方面的示例网络设备;图2A和图2B示出了根据主题技术的一些方面的示例系统实施例;图3示出了网络结构的示例架构的示意性框图;图4示出了示例覆盖网络;图5A-图5D示出了被配置为在微服务环境中缩放服务发现的示例系统;以及图6示出了在微服务环境中缩放服务发现的示例方法。具体实施方式以下阐述的详细描述旨在作为主题技术的各种配置的描述,而非旨在表示可以实 ...
【技术保护点】
1.一种方法,包括:在主计算设备上实例化第一容器实例,该第一容器实例提供应用程序的第一微服务,其中,所述主计算设备包括服务发现代理;识别作为第一微服务的依赖项的一组微服务;以及利用提供所述作为第一微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理,其中,所述服务发现代理使用该路由数据将来自所述第一容器实例的请求路由到提供所述作为第一微服务的依赖项的一组微服务的容器实例。
【技术特征摘要】
【国外来华专利技术】2016.07.22 US 15/217,3111.一种方法,包括:在主计算设备上实例化第一容器实例,该第一容器实例提供应用程序的第一微服务,其中,所述主计算设备包括服务发现代理;识别作为第一微服务的依赖项的一组微服务;以及利用提供所述作为第一微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理,其中,所述服务发现代理使用该路由数据将来自所述第一容器实例的请求路由到提供所述作为第一微服务的依赖项的一组微服务的容器实例。2.如权利要求1所述的方法,还包括:在所述主计算设备上实例化第二容器实例,该第二容器实例提供所述应用程序的第二微服务;识别作为第二微服务的依赖项的一组微服务;以及利用提供所述作为第二微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理,其中,所述服务发现代理使用该路由数据将来自第二容器的请求路由到提供所述作为第二微服务的依赖项的一组微服务的容器实例。3.如权利要求2所述的方法,其中,利用提供所述作为第二微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理包括:从所述作为第二微服务的依赖项的一组微服务中识别第一微服务子集,所述第一微服务子集是所述第二微服务的依赖项但未包括在所述作为第一微服务的依赖项的一组微服务中;以及利用提供所述第一微服务子集的容器实例的路由数据来更新所述服务发现代理。4.如权利要求3所述的方法,还包括:移除提供所述应用程序的所述第二微服务的所述第二容器实例;以及更新所述服务发现代理以移除提供所述第一微服务子集的容器实例的路由数据。5.如权利要求3或4所述的方法,还包括:移除提供所述第一微服务的所述第一容器实例;从所述作为第一微服务的依赖项的一组微服务中识别第二微服务子集,所述第二微服务子集是所述第一微服务的依赖项但未包括在所述作为第二微服务的依赖项的一组微服务中;以及更新所述服务发现代理以移除提供所述第二微服务子集的容器实例的路由数据。6.如权利要求1至5中任一项所述的方法,其中,识别所述作为第一微服务的依赖项的一组微服务包括:搜索所述应用程序的微服务依赖表以寻找所述作为第一微服务的依赖项的一组微服务,其中,所述微服务依赖表列出所述应用程序的微服务及其相应的依赖项。7.如权利要求1至6中任一项所述的方法,其中,识别所述作为第一微服务的依赖项的一组微服务包括:根据基于组的策略来收集所述作为第一微服务的依赖项的一组微服务,所述基于组的策略与所述第一容器实例被指派的端点组相关联,所述端点组仅包括提供所述第一微服务的容器实例,并且所述基于组的策略标识所述第一微服务的依赖项。8.一种控制器,包括:一个或多个计算机处理器;以及存储器,其存储指令,所述指令当由所述一个或多个计算机处理器执行时使得所述控制器:在主计算设备上实例化第一容器实例,该第一容器实例提供应用程序的第一微服务,其中,所述主计算设备包括服务发现代理;识别作为所述第一微服务的依赖项的一组微服务;以及利用提供所述作为第一微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理,其中,所述服务发现代理使用该路由数据将来自所述第一容器实例的请求路由到提供所述作为第一微服务的依赖项的一组微服务的容器实例。9.如权利要求8所述的控制器,其中,所述指令还使得所述控制器:在所述主计算设备上实例化第二容器实例,该第二容器实例提供所述应用程序的第二微服务;识别作为第二微服务的依赖项的一组微服务;以及利用提供所述作为第二微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理,其中,所述服务发现代理使用该路由数据将来自第二容器的请求路由到提供所述作为第二微服务的依赖项的一组微服务的容器实例。10.如权利要求9所述的控制器,其中,利用提供所述作为第二微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理包括:从所述作为第二微服务的依赖项的一组微服务中识别第一微服务子集,所述第一微服务子集是第二微服务的依赖项但未包括在所述作为第一微服务的依赖项的一组微服务中;以及利用提供所述第一微服务子集的容器实例的路由数据来更新所述服务发现代理。11.如权利要求10所述的控制器,其中,所述指令还使得所述控制器:移除提供所述应用程序的所述第二微服务的所述第二容器实例;以及更新所述服务发现代理以移除提供所述第...
【专利技术属性】
技术研发人员:杨义,沃伊切赫·德克,赛义德·巴希鲁丁·艾默德,桑贾伊·阿格拉瓦,鲁奇尔·古普塔,
申请(专利权)人:思科技术公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。