在Angular中处理服务发现

问题描述 投票:1回答:1

我现在正在玩微服务,我也刚开始使用Angular。现在,我想知道是否/如何从Angular中访问服务发现(例如Consul)?访问我的意思是:

  • 将angular app注册为注册表中的服务(以便它知道正在运行的主机和端口角度应用程序)
  • 将REST调用发送到其他注册服务 - 最好只使用服务名称。

为了更准确地表达这一点:有一个用例,我使用Spring Boot开发了两个简单的服务,我使用了this博客的步骤来使用Consul从另一个服务访问一个服务。因此,我的REST调用最终看起来像这样:

restTemplate.getForObject(http://city-service/rest/city/capital',...);

我喜欢这个是我可以抽象出主机和端口信息。现在,我想在Angular中做同样的事情。因此,而不是像这样的东西:

this.http.get('http://localhost:8080/rest/city/capital')

我想有类似的东西:

this.http.get('http://city-service/rest/city/capital')

如何在Angular中访问服务发现,例如Consul(它不一定是Consul,其他的也没关系)?正如我所说,我刚刚开始了解Angular,所以请原谅这是一个愚蠢的问题。

我知道一些服务发现(包括Consul)提供了一个REST API来检索有关已注册服务的信息。但是,在我发送实际需要的REST请求之前,我首先需要向此发送一个REST请求。如果有其他选择,我更愿意。任何帮助表示赞赏。

我发布了一个关于这个before的更普遍的问题,但我现在在这里具体化了这个问题。

angular rest consul service-discovery
1个回答
1
投票

领事和其他服务发现系统的设计不能从公共网站访问,您的问题与Angular无关。

您可以使用Consul感知负载均衡器(如https://github.com/fabiolb/fabiohttps://traefik.io/)将流量路由到根据HOST和/或PATH在Consul中注册的服务。

© www.soinside.com 2019 - 2024. All rights reserved.