我的服务器有很多轻量级方法和一个重量级方法。我似乎无法找到Apache Thrift支持服务器的多个传输的证据。我喜欢的是除重量级方法和重量级方法的TCP / IP(分布式)之外的所有共享内存。我可以把它分成两个服务器,但这种打破了封装的目标(我认为)。
答案 0 :(得分:3)
如果你真的是指运输 - 而不是直接运输。可能的是将处理程序作为可以重复使用的单独实体,例如,使用不同的协议/传输堆栈。
听起来,在你的情况下,最好的解决方案确实是拥有两个不同协议/传输堆栈的服务器,两者都使用相同的处理程序代码,但实现不同的Thrift服务。
+----------------+
+----- uses ---------> | LWService | <-------+
| +----------------+ |
| implements
| |
+------+-----------+ +-----+-----+
| | | |
| | | |
| Client | | Handler |
| | | |
| | | |
| | | |
| | | |
| | +-----+-----+
+------+-----------+ |
| implements
| +----------------+ |
+---- uses ----------> | HeavyService | <-------+
+----------------+