向客户公开服务

时间:2012-05-13 16:20:27

标签: c++ architecture service thrift

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

这样做的好处是:

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