我们的应用程序中有内部服务,这些服务基本上是作为 Thrift RPC 服务开发的。现在,我需要将这些服务公开给核心系统之外的客户端应用程序。
现在,问题是: 我应该直接向客户端公开这些 Thrift 服务吗?这样做的好处是所需的工作量最少。缺点是客户端需要连接到这些 Thrift API 以及另一个已经存在的接口(interface),因此实际上客户端应用程序需要打开多个套接字才能连接到核心系统。
另一种选择是将这些 Thrift 服务包装在另一层中,最终交付给最终客户端。这样做的缺点:对数据进行两次编码/解码,一次使用 Thrift,下一次使用另一个接口(interface)。
处理这种情况的首选方法应该是什么?
最佳答案
我们不会将这些服务直接暴露给外部客户。我们将构建或使用应用程序来配置外部客户端可以连接到的代理。
这样做的好处是:
- 无需在防火墙上打洞
- 可以进行额外的安全检查
- 可以限制对内部服务的访问
- 黑客利用服务的可能性较小
关于c++ - 向客户公开服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10573268/