【发布时间】:2013-09-20 08:20:00
【问题描述】:
我有一个有两种方法的旧服务
1. 响应 processSync(Request req) :该方法同步处理请求并返回响应。在服务器完全处理请求之前,客户端线程会被阻塞。
2. void processAsync(Request req) :该方法用于异步处理。在这里,只要服务器完全接收到请求,调用就会返回,没有输出。客户端线程不会等到请求被服务器处理。
在使用 ThreadedSelectorServer 时,它具有用于读取/写入和处理线程的单独线程。要求是在方法级别使用单独的线程池。这是因为可能会发生所有处理线程都忙于同步请求的情况。使用异步 api 的客户端可能会超时。我希望给两个 api 同等的权重,这样如果服务器被同步请求淹没;异步请求不会受到影响。
想到有两种不同的服务,一种只有同步方法,另一种有异步。但在这种情况下,必须启动两个节俭服务器,这需要两个不同的端口。我希望避免这样做。
有什么建议可以实现吗?
【问题讨论】:
标签: thrift