我刚刚开始深入研究微服务主题,所以请原谅这是一个愚蠢的问题。
假设我有两个微服务,一个提供REST api,一个是角度微服务,用于一个不错的前端。预期角度微服务与其他微服务通信。 我看到很多实现这个的例子,它基本上没什么大不了的。我很清楚这一点。然而,在所有这些例子中,我在角度微服务中看到了类似的东西:
this.http.get('http://....:8080....');
起初我很高兴让它运行起来。但是,现在我想知道这些实现是否没有将服务紧密地耦合到彼此。在http URL中,我们看到主机和端口也在修复。在某些情况下,这可能效果很好,但是,如果我们的微服务,例如动态选择一个端口,我们已经有问题吧?然后我们不能以这种方式定义其他微服务中的端口。这同样适用于主机信息。如果微服务可能在不同的主机上运行,我们不能总是静态地定义主机。
如果我错了,请纠正我。有没有什么方法可以抽象出这些细节,即主机或端口,但还有另一种方法可以动态地找到它吗?或者,微服务之间的通信还有其他好的替代方案,并不意味着这个问题吗?
我看到了使用服务注册表的服务示例。通过这种方式,我们可以从中抽象出一点 - 不是吗?这是唯一的可能吗?我不确定这是否相关,但到目前为止,我正在使用Spring Boot来实现我的微服务。
答案 0 :(得分:1)
我认为这里有一个混乱,微服务应该围绕业务能力建立,这意味着你的微服务将包括前端和后端。前端不应被视为微服务。
前端可以使用子域名http://api.example.com
访问后端答案 1 :(得分:0)