向客户端公开服务

Exposing Service to Clients

本文关键字:服务 客户端      更新时间:2023-10-16

我们的应用程序中有内部服务,基本上是作为Thrift RPC服务开发的。现在,我需要向核心系统外部的客户端应用程序公开这些服务。

现在,问题是:我应该直接向客户端公开这些节俭服务吗?这样做的好处是所需的工作量最少。缺点是客户端需要连接到这些 Thrift API 以及另一个已经存在的接口,因此实际上客户端应用程序需要打开多个套接字才能连接到核心系统。

另一种选择是将这些Thrift服务包装在另一层中,最终将交付给最终客户。这样做的缺点:对数据进行两次编组/解组,一次使用 Thrift,下一次使用另一个接口。

处理这种情况的首选方法应该是什么?

我们不会直接向外部客户端公开这些服务。我们将构建或使用应用程序来配置外部客户端可以连接到的代理。

这样做的好处是:

  • 无需在防火墙上打洞
  • 可以进行额外的安全检查
  • 可以限制对内部服务的访问
  • 黑客利用服务的机会更小