我想围绕第三方库中的对象创建包装器,然后通过Tokio将源自TCP套接字的请求分派给该对象。在Tokio中是否有惯用的方式来处理此问题?
从概念上讲,界面如下:
impl MyObject {
fn handle_requestA(&self, r: RequestA) -> ResponseA,
fn handle_requestB(&self, r: RequestB) -> ResponseB,
// ...
}
需要注意的几件事:
我可以启动一个常规的OS线程并通过一个队列来馈送它,但是在那种情况下,我需要将不同类型的请求多路复用到它上(然后将响应多路分解回套接字)。我可以重复使用一些现有的管道吗?
一个目标是要有MyObject
个池,并在它们之间进行负载均衡请求。