您好我正在使用java和thrift。我看到thrift有两个部分Async系统,一个是Service.AsyncIface,另一个是Service.AsyncClient。从AsyncClient的thrift实现中,我看到非阻塞接口已连线并准备好在库侧进行。我刚刚使用TNonBlockingSocket制作了一个简单的客户端,它可以工作
1)我们是否关心服务的现有thrift服务器是阻塞还是非阻塞?为什么呢?
2)如果我们想将非阻塞客户端框架包装在重试逻辑,主机发现,策略管理等内容中,那么理想的框架是什么?
答案 0 :(得分:0)
从客户端的角度来看,鉴于协议和传输兼容,与同步或异步服务器的通信没有区别。这是因为客户端应该从两个同步/异步服务器接收相同的序列化响应。例如,如果您通过HTTP请求执行JSON,那么您并不关心服务器是同步还是异步。
如果您只对JVM语言感兴趣,那么Finagle是一个不错的选择(而且它是我所知道的唯一需要功能集的框架)。