我正在尝试让我的应用程序使用 Thrift 相互交谈。所有的应用程序都在同一个网络中运行,并且都是使用 Nginx 和 Phusion Passenger 运行的 ruby 应用程序。我使用 thrift 在具有 Thrift::HTTPClientTransport 的应用程序之间进行通信没有问题,但这涉及在接收应用程序上公开 HTTP URL。我已经制作了一个机架中间件,它接受对该路径的请求,调用被调用的方法并通过 thrift 进行响应。
我的问题是如何在运行乘客时绕过对中间件和 thift HTTP 传输的需求。我想到了几个想法,包括制作我自己的代理服务器,在乘客工作人员可用时注册它们并在这些工作上分配端口,以便使用 thrift 的客户端可以直接通过 Thrift::BufferedTransport 或 Thrift::FramedTransport 调用方法。我有一种感觉,必须有一种方法来解决对自定义代理服务的需求。
有任何想法吗?