Microservices 播放微服务-api网关和服务发现
我们计划开发一些基于play框架的微服务。他们将提供RESTAPI,其中许多人将在后台使用akka集群/集群切分 我们希望有一个api网关来公开我们内部服务的api,但我们面临一个大问题:Microservices 播放微服务-api网关和服务发现,microservices,service-discovery,api-gateway,Microservices,Service Discovery,Api Gateway,我们计划开发一些基于play框架的微服务。他们将提供RESTAPI,其中许多人将在后台使用akka集群/集群切分 我们希望有一个api网关来公开我们内部服务的api,但我们面临一个大问题: -每个服务的多个实例将在某些ip和端口下运行。 -api网关如何知道服务实例在哪里运行? -是否有像for play这样的负载平衡器可以跟踪所有正在运行的服务 哪些解决方案可能填补“API网关”/“负载平衡器”的空缺 您所问的问题实际上与play framework无关。没有一个单一的答案可以解决你的需要 你
-每个服务的多个实例将在某些ip和端口下运行。
-api网关如何知道服务实例在哪里运行?
-是否有像for play这样的负载平衡器可以跟踪所有正在运行的服务 哪些解决方案可能填补“API网关”/“负载平衡器”的空缺
您所问的问题实际上与play framework无关。没有一个单一的答案可以解决你的需要 你可以从阅读《阿克卡》开始,然后根据更适合你的内容做出选择 我们正在使用
akka http
构建服务,并使用akka集群
,但使用不相关的技术公开和运行服务
退房
- 用于API网关
- 用于基于DNS的服务发现
- 用于运行容器,用于负载平衡
负载平衡器
,它可以作为服务发现的一种形式
我认为负载平衡器不会随着时间的推移发生很大变化,除非您需要非常高级的体系结构,这样您的API网关就可以简单地“知道”所有服务的负载平衡器的url。所以,您并不真正需要服务注册层
现在,负载平衡器本质上为实例提供了健康检查和隔离机制。因此,您不需要额外的健康检查层
因此,唯一缺少的是向负载平衡器注册实例。这一部分您必须根据负载平衡器是什么以及它们所处的生态系统来确定
如果您生活在AWS生态系统中,并且您的负载平衡器是ELB,那么您应该在这方面进行整理。根据Ivan和Sarvesh的回答,我们进行了一些研究,发现了netflix OSS项目。 可以用作与api网关良好集成的服务定位器。遗憾的是,没有太多关于配置的文档,所以我们进一步研究了 我们现在终于选择库伯内特斯为管弦乐队成员
- Kubernetes知道所有正在运行的容器,因此不需要像Eureka这样的外部服务定位器
- 是一个api网关,它利用kuberentes api发现所有正在运行的微服务实例并进行负载平衡
- 通过kubernetes api查找所有节点,并为我们执行集群引导