我读过这个和这个。但是,我的情况有所不同。我不需要服务器上的Multiplex服务,也不需要多个服务器连接。
背景: 对于我的大数据项目,我需要……
从它的本质来看,这更像是一个架构问题,而不是一个Thrift问题。考虑到前提
我不需要每个连接一个线程,我想要一个连接,并且服务器同时处理多个服务请求。 Visiualization:
和
我通过添加单向函数声明来解决客户端等待服务器完成计算的部分问题,以指示客户端只发出请求而不等待任何响应。
正在准确描述用例,你想要这个:
+---------------------+ | Client | +---------+-----------+ | | +---------v-----------+ | Server | +---------+-----------+ | | +---------v-----------+ +---------------------+ | Queue<WorkItems> <----------+ Worker Thread Pool | +---------------------+ +---------------------+
该 的 服务器 强> 唯一的任务是获取请求并尽快将它们插入到 的 工作项目队列 强> 。这些工作项目由独立的人员处理 的 工人线程池 强> ,否则完全独立于服务器部分。唯一的共享部分是工作项队列,当然需要正确同步的访问方法。
关于serevr选择:如果服务器足够快地提供请求,甚至是 TSimpleServer 可能会。
TSimpleServer