我现在正在玩微服务,我也刚刚开始使用Angular。现在,我想知道是否/如何从Angular中访问服务发现(例如Consul)?访问我的意思是:
将角度应用程序注册为注册表中的服务(以便它知道主机和端口角度应用程序正在运行)
向其他注册服务发送REST呼叫 - 最好只使用服务名称。
更精确地表达一下:有一个用例,我使用Spring Boot开发了两个简单的服务,我使用了this Blog的步骤来使用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的更一般性的问题,但我现在在这里将这个问题具体化了。
答案 0 :(得分:1)
Consul和其他服务发现系统的设计无法从公共网站访问,您的问题与Angular无关。
您可以使用Consul感知负载均衡器(例如https://github.com/fabiolb/fabio或https://traefik.io/)将流量路由到根据主机和/或路径在Consul中注册的服务。