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