我现在正在玩微服务,我也刚开始使用Angular。现在,我想知道是否/如何从Angular中访问服务发现(例如Consul)?访问我的意思是:
为了更准确地表达这一点:有一个用例,我使用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无关。
您可以使用Consul感知负载均衡器(如https://github.com/fabiolb/fabio或https://traefik.io/)将流量路由到根据HOST和/或PATH在Consul中注册的服务。