最流行的选项是在
grpc
上运行 netty
服务器,根据我的理解 netty
使用工作事件循环组来调用管道中的处理程序,所以基本上我的 rpc 是管道中的这些处理程序之一。 Netty
不喜欢长阻塞代码,所以在我的rpc中我应该避免阻塞代码,还是可以编写老式的阻塞服务器?
我想您正在谈论从服务器接收消息。对于发送,消息一旦发送就会排队直到刷新,发送时不能阻塞netty。
对于从wire收到的消息,netty传输立即切换到调用执行器。 RPC 的处理将跳转并安排在调用执行器上。所以即使你编写阻塞代码,netty服务器也不会阻塞。 使用 grpc-java 时可以随意编写阻塞代码。与阻塞netty无关。