0
讓我們想象有一臺服務器,當接收到一個汽車模型的請求時,查詢所有已知的汽車經銷商尋找最便宜的汽車經銷商,並用價格迴應(使用任何協議)。此操作需要一段時間。 在一個偶然的禁止請求/響應服務器模式,我做Netty - 它是如何異步的?
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的異步來自哪裏?客戶端需要什麼來從異步獲益?
你不需要'庫匹配'。用JSON/HTTP說話,就完成了。 netty的異步性來自於它的設計。 – rkosegi
@rkosegi使用HTTP時請注意,它最好使用websockets。當使用HTTP時,你必須使用煩人的方式來正確支持規範中的強制流水線部分,因爲你永遠不知道客戶端可能會使用這個部分。由於這個原因,現在大多數家庭發明的HTTP服務器都被破壞了。 – Ferrybig
@rkosegi - 我不太明白JSON與異步性有什麼共同之處。 Netty不需要HTTP。 –