前端还是后端应该调用微服务?

时间:2018-08-26 06:23:53

标签: architecture microservices

我对我的前端应用程序应该是调用微服务还是后端应用程序感到困惑?

例如:假设我有一个使用“ Auth”和“ Products”服务的“ App A”。我的“ App A”服务器是否应该调用身份验证和产品服务?还是我的前端应该直接致电这些服务?

我认为在许多情况下,直接调用我的服务更为正确,因为我发现否则,我的应用程序服务器端点纯粹是这些服务的代理,这毫无用处。

2 个答案:

答案 0 :(得分:0)

一如既往...这取决于。如果您的后端纯粹是代理呼叫,那是没有用的。但是您也可以将其用于日志记录,负载平衡等。例如,Javascript应用程序无法并行运行并利用所有内核。因此,这也可能是在后端处理请求的原因。确实没有万能的解决方案。

答案 1 :(得分:0)

您提到的方法与API Gateway的用例非常吻合。 它实际上不仅仅是代理。您可以采取多种方式来解决此问题,但也许最重要的是安全性和抽象性。 通过允许前端直接访问服务,您会将所有服务公开到Internet,并且您必须建立机制来解决其中每个漏洞。在一个地方做到这一点很有意义。

第二个是端点的发现和可维护性,这种解决方案更好。

这可能会增加一跳,但是您可以适当执行此操作使其变得有价值。

如果您不直接公开服务,则可以很好地管理日志记录,路由,停机/错误处理。

关于Auth服务的另一点,它可能位于您的代理之后,或者可能是唯一公开的其他服务。这两种方法都有一些好处,但是由于它不是您所要求的,因此我将对此进行了调整。

最后,这实际上取决于您的需求和用例。如果安全不是主要问题,或者您正在围绕POC进行更多工作。但只要考虑拥有一个的利弊