首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >thrift中的大量并发连接

thrift中的大量并发连接
EN

Stack Overflow用户
提问于 2009-06-05 09:06:57
回答 2查看 6.5K关注 0票数 5

我正试着用Thrift写一个简单的服务器。一开始,它看起来很有希望,但我遇到了一个同时连接多个客户端的问题。我使用的是TThreadPoolServer,它允许4个客户端连接,然后阻止其他客户端,直到我从连接的客户端中删除一个。我可以做些什么来允许更多(可能是几百个)客户端同时连接,而不增加线程的数量。我假设工作线程允许一次执行一个客户端请求,但它看起来像是一个线程处理一个连接,直到它关闭。我希望避免客户端必须重新打开套接字才能执行操作的情况。

EN

Stack Overflow用户

回答已采纳

发布于 2010-06-18 15:51:18

采取另一种方法,如果您使用C++构建服务器,则可以使用TNonblockingServer而不是TThreadPoolServer,这将允许您一次接受多个连接,而不管有多少个线程处于活动状态,等等……

也就是说,您实际上不一定能够更快地完成工作(处理程序仍然在线程池中执行),但是更多的客户端将能够同时连接到您。

以下是NB服务器的代码:

代码语言:javascript
运行
复制
shared_ptr<TProtocolFactory> protocolFactory(new TBinaryProtocolFactory());
shared_ptr<MyHandler> handler(new MyHandler());
shared_ptr<TProcessor> processor(new MyProcessor(handler));
TNonblockingServer server(processor, protocolFactory, port);
票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/954945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档