首页 > 解决方案 > 可在 Internet 上访问的微服务端点

问题描述

我们有一个基于微服务的架构,其中每个服务都有一个 REST 端点。这些服务通过 REST 相互通信。

但是我注意到很多开发人员已经直接开始在我们的 Web 应用程序的 Javascript 代码中调用这些服务。我想知道是否建议通过 Internet 访问这些微服务,或者它们应该隐藏在 Facade 层后面。当然,所有端点都经过身份验证,但是所有 Web 应用程序用户只要执行 F12 就可以找到这些端点。

谢谢,

阿比

标签: restspring-bootarchitecturemicroservices

解决方案


我不会这样做,原因如下

  1. 安全。您正在按原样公开您的端点,它允许其他人了解很多关于您的端点的信息,而不是您希望他们知道的内容。身份验证没问题,但仍然对 DDOS 开放,用于您的个人服务、不按顺序调用、意外负载等。
  2. 服务发现。通过允许直接访问端点,您基本上是在强制开发人员将自己绑定到给定的 URL。这可能有效,但由于它限制您将来对您的 URL 等进行更改,因此最好不要这样做。通过在两者之间设置一层,如果需要,您将需要更改一个 url
  3. 代码重复在 URL 处理方面存在很多交叉问题,例如请求日志记录、https 剥离、身份验证、DDOS 预防、请求限制等。通过在您的服务之前拥有一个公共层,您可以在一个地方管理所有这些而不是为每个服务做每一个

如果您认为其中任何一个是或可能是主要问题,您应该在两者之间添加一个额外的层并通过它路由您面向互联网的 api。


推荐阅读