Asynchronous Netty-它是如何异步的?

Asynchronous Netty-它是如何异步的?,asynchronous,netty,Asynchronous,Netty,假设有一个服务器,当收到一个车型请求时,它会询问所有已知的汽车经销商,寻找最便宜的车型,并使用任何协议回复价格。这个动作需要一段时间。 在临时阻塞请求/响应服务器模型中,我会 request = "audi a8" // prepare a request and one line after have the response response = server.findCheapestCar(request) // takes 20 seconds 我不想阻塞我的客户机主线程20秒,所以我

假设有一个服务器,当收到一个车型请求时,它会询问所有已知的汽车经销商,寻找最便宜的车型,并使用任何协议回复价格。这个动作需要一段时间。 在临时阻塞请求/响应服务器模型中,我会

request = "audi a8" // prepare a request and one line after have the response
response = server.findCheapestCar(request) // takes 20 seconds
我不想阻塞我的客户机主线程20秒,所以我更希望它异步执行。我对异步事物的理解是,我可以将某种对象传递给它,并在工作中携带一个对象。一旦服务器准备好响应,它将通知我传递的对象->临时回调模式

这种方法需要库匹配——客户端和服务器都需要知道对象。但我希望构建在Netty上的异步服务器能够处理来自各种客户端C++/Python和其他客户端的请求

netty的异步性从何而来?客户端需要什么才能从异步性中获益

netty的异步性从何而来

Netty采用了eventloops的原理,您可以从JavaScript这样的语言中了解到这一点。这允许netty完全异步工作。有关eventloops和基本基本原理的更多信息,我建议使用JavaScript中的evenloop

客户端需要什么才能从异步性中获益

客户端发送包含有效负载和请求id=clientside递增整数的请求 服务器处理请求50秒 服务器发送包含负载和客户端在其请求中发送的相同请求id的响应 客户机接收响应并查找请求id(如果客户机能够找到请求id及其将调用的底层回调)
希望这有帮助

您不需要库匹配。用JSON/HTTP说话,你就完成了。netty的异步性来自它的设计。@rkosegi在使用HTTP时要小心,最好使用WebSocket。当使用HTTP时,您必须使用恼人的方式来正确支持规范的强制管道部分,因为您永远不知道什么客户端可能会使用它。如今,大多数家庭发明的HTTP服务器都因此而损坏。@rkosegi-我不太明白JSON与异步有什么共同之处。Netty不需要HTTP。