gpt4 book ai didi

Thrift(Apache)在同一个线程池或线程下使用多个服务

转载 作者:行者123 更新时间:2023-12-01 03:27:48 26 4
gpt4 key购买 nike

我们使用 Apache thrift(在我们的案例中是在 Windows 上)来定义由我们的一个可执行文件公开的多个服务。我们通常最终会使用新方法扩展一个服务接口(interface),否则我们将不得不创建新线程(至少一个)来为新定义的“thrift 服务”提供服务

有没有办法在 thrift 中使用相同的底层线程来处理多个 thrift 服务定义?

最佳答案

从 0.9.x 开始,Thrift 支持某些语言的多路复用协议(protocol)。从那时起,为其余语言添加了几个实现。

像往常一样,要遵循的路径非常相似。您添加 TMultiplexedProtocol在你的运输堆栈的两侧。代码库中也有一些示例。

这有一些含义:

  • 由于 TMultiplexedProtocol 是一个分层协议(protocol),所有服务共享相同的端点协议(protocol)(例如二进制)和传输(例如套接字)。在大多数情况下,这正是您想要的。如果您需要不同的传输或端点协议(protocol),您仍然必须设置不同的服务。

  • 用多路复用服务器替换服务器在理论上是可行的,但尚未针对所有语言完全实现,请参见下文。详情可见THRIFT-1915 .

Regarding compatibility: The new multiplexing uses a delimiter char. The existing code could be modified in such a way, where there is a default service (which would be the old, unmultiplexed service) which gets called whenever no delimiter is found in the name. If the default is null or empty, the code behaves as in the actual solution.

如果您需要针对您选择的语言进行这种相对简单的修改并希望提供补丁,我们将很乐意对其进行审核和集成。

关于Thrift(Apache)在同一个线程池或线程下使用多个服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24228020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com