首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >播放微服务- api网关和服务发现

问播放微服务- api网关和服务发现
EN

Stack Overflow用户
提问于 2018-12-14 00:00:28
回答 3查看 5.3K关注 0票数 4

我们计划开发一些基于play框架的微服务。他们将提供rest,其中许多将使用akka集群/集群在引擎盖下分片。

我们希望有一个api网关来公开我们内部服务的api,但是我们面临一个大问题:

  • 每个服务的多个实例将在某些ip和端口下运行。
  • api网关如何知道服务实例在哪里运行?
  • 是不是有什么负载平衡器--比如播放--可以跟踪所有的运行服务?

哪种解决方案可以填补"API网关“/”负载均衡器“的空白?

​

​

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-02 19:56:53

基于Ivan和Sarvesh的回答,我们做了一些研究,并发现了netflix项目。尤里卡可以用作与祖尔 api网关很好地集成的服务定位器。遗憾的是,关于配置的文档不多,所以我们进一步研究了.

我们现在终于选择了库伯内特斯作为Orchestator。

  • Kubernetes知道所有正在运行的容器,因此不需要像Eureka这样的外部服务定位器。
  • 特雷菲克是一个api网关,它利用kuberentes发现所有正在运行的微服务实例并进行负载平衡。
  • Akka管理通过kubernetes api查找所有节点,并为我们引导集群。
票数 2
EN

Stack Overflow用户

发布于 2018-12-14 10:27:02

你要问的问题其实与游戏框架无关。没有一个单一的答案能解决你所需要的。

你可以从阅读akka 服务发现开始,然后根据更适合你的内容做出选择。

我们使用akka-http构建服务并使用akka-cluster,但是使用无关的技术来公开和运行服务。

检查

票数 5
EN

Stack Overflow用户

发布于 2018-12-14 10:27:25

您正在寻找以下组件,

  1. 服务注册中心():这个组件的全部目的是跟踪“在哪个地址上运行的服务”。这可以像一个简单的数据库一样简单,该数据库保存所有正在运行的服务及其实例的条目。通常,业务流程服务负责向service注册新的服务实例。另一种选择是让实例本身通知服务注册中心它们的存在。
  2. 服务健康检查器:该组件主要负责对已注册的服务实例执行定期运行时检查,如果其中任何实例不工作,则通知服务注册表。然后,服务注册中心实现可以将这些实例标记为“非活动”,直到它们在将来被service发现工作为止(如果有的话)。
  3. 服务解决方案:这是负责使客户端以某种方式到达正在运行的服务实例的概念组件。

上述组件的全部称为服务发现。

在您的例子中,您有load-balancers,它可以作为ServiceDiscovery的一种形式。

我不认为load-balancers会随着时间的推移而发生很大的变化,除非您需要一个非常高级的体系结构,所以您的API网关可以简单地“知道”用于所有服务的加载平衡器的url。因此,您的不需要真正需要服务注册中心层。

现在,您的负载平衡器本质上为实例提供了健康检查和隔离机制。所以,你不需要额外的健康检查层。

因此,唯一缺少的部分是将您的实例注册到负载均衡器。这一部分你必须根据你的负载平衡器是什么以及它们生活的生态系统来确定。

如果您生活在AWS生态系统中,而您的负载平衡器是ELB,那么您应该在这方面解决问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53771774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档