有時候,我的服務發送大量diffirence主機名的URL所有的時間做DNS請求,我將重新建立我的搬運工容器,該容器的同時重新啓動,一些HTTP請求將會失敗:爲什麼libuv由多個線程
events.js:154
throw er; // Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND www.videojj.com www.videojj.com:80
at errnoException (dns.js:26:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:77:26)
我不確定原因,我知道DNS,由libuv中的多線程文件操作。我很困惑,爲什麼DNS請求不能在libuv
thx爲你回覆,我只想知道爲什麼DNS請求是一個阻止操作。 – bugall
@bugall你確實問過一些不同的東西。無論如何,它們在設計上是同步的,而且它們有異步的對應物(不幸的是不能移植)。 Libuv無能爲力,只能將它們放在線程上。就這樣。 – skypjack
@bugall:至少在POSIX中,DNS的API被阻止。 (libuv試圖保持接近POSIX;在DNS的情況下,你可能甚至不能通過其他簡單的方式獲得異步性,而不是通過線程/進程)。 –