Apache Thrift 可以为单个服务器使用多个传输吗?
Can Apache Thrift use multiple transports for a single server?
我有一个服务器有很多轻量级方法和一个重量级方法。我似乎无法找到 Apache Thrift 支持服务器的多种传输的证据。我想要的是除重量级方法之外的所有共享内存和重量级方法的 TCP/IP (分布式)。我可以将它分成两个服务器,但那样会破坏封装的目标(我认为)。
如果您真的是指运输工具 - 不是直接的。可能的是将处理程序作为可以重复使用的单独实体,例如使用不同的 protocol/transport 堆栈。
听起来,在您的情况下,最好的解决方案确实是拥有两个具有两个不同 protocol/transport 堆栈的服务器,它们都使用相同的处理程序代码,但实现不同的 Thrift 服务。
+----------------+
+----- uses ---------> | LWService | <-------+
| +----------------+ |
| implements
| |
+------+-----------+ +-----+-----+
| | | |
| | | |
| Client | | Handler |
| | | |
| | | |
| | | |
| | | |
| | +-----+-----+
+------+-----------+ |
| implements
| +----------------+ |
+---- uses ----------> | HeavyService | <-------+
+----------------+
我有一个服务器有很多轻量级方法和一个重量级方法。我似乎无法找到 Apache Thrift 支持服务器的多种传输的证据。我想要的是除重量级方法之外的所有共享内存和重量级方法的 TCP/IP (分布式)。我可以将它分成两个服务器,但那样会破坏封装的目标(我认为)。
如果您真的是指运输工具 - 不是直接的。可能的是将处理程序作为可以重复使用的单独实体,例如使用不同的 protocol/transport 堆栈。
听起来,在您的情况下,最好的解决方案确实是拥有两个具有两个不同 protocol/transport 堆栈的服务器,它们都使用相同的处理程序代码,但实现不同的 Thrift 服务。
+----------------+
+----- uses ---------> | LWService | <-------+
| +----------------+ |
| implements
| |
+------+-----------+ +-----+-----+
| | | |
| | | |
| Client | | Handler |
| | | |
| | | |
| | | |
| | | |
| | +-----+-----+
+------+-----------+ |
| implements
| +----------------+ |
+---- uses ----------> | HeavyService | <-------+
+----------------+