Я использую причал «7.6.8.v20121106» в составе https://github.com/ring-clojure/ring/tree/master/ring-jetty-adapter с моим сервером.Нитки причалов заблокированы и заблокированы
Я звоню, используя http://http-kit.org/ со следующим кодом. По сути, я делаю серверные вызовы, но игнорирую ответ. То, что я нахожу, это то, что все потоки серверов становятся заблокированными/запертыми после этого. Это кажется очень простым способом донести до сервера и хочет понять, что здесь происходит.
код от клиента:
(require '[org.httpkit.client :as hk-client])
(defn hget [id]
(hk-client/get (str "http://localhost:5000/v1/pubapis/auth/ping?ping=" id)))
(doall (map hget (take 100 (range))))) ; Gives problem
(doall (map deref (map hget (take 100 (range)))))) ; Doesn't give problem
Нити блокированных в
sun.nio.cs.StreamEncoder.write (StreamEncoder.java:118)
и тупиковой на
java.io.PrintStream.write (PrintStream.java:479)
Было бы очень полезно, если кто-то может помочь с тем, что происходит здесь.
Блокировка на этих линиях указывает на то, что ваш клиент не считывает данные из сокета. Сервер вступил в этот поток, блокирующий перегруженное соединение (что-то писать, ничего не читает). Когда вы говорите «но игнорируя ответ», я надеюсь, что вы прочтете ответ или прекратите соединение. –
Этот код выполняется на сервере. И строка в промежуточном программном обеспечении вызывает журнал. Клиент делает HTTP-запрос и игнорирует ответ, а это означает, что согласно https://github.com/http-kit/http-kit/issues/66#issuecom.2-22441928 он получит клиентский ответ, полученный, декодированный и выбросить, собрать мусор ». –