Java Play2 uygulamasında, eşzamanlı bir üçüncü taraf istemci kitaplığı aracılığıyla veri almak için bazı harici web hizmetleri çağırılıyor. Bu uygulama için yüksek trafik ve ölçeklenebilirliğe ihtiyacım var.Oynat 2: play.libs.WS ASync işleme için 3. parti istemci kitaplığı
oyun belgelerine diyor ki: Bir 3. parti istemci kütüphanesine (yani değil kullanarak Play'in asenkron WS API) [aracılığıyla DİNLENME/WebService API'leri kullanarak :
, varsayılan oyun havuzu Futur görevler için kullanıldığı için işler asenkron hale getirmek için vaatlerde kullanmak gerçekten yararlı değil. Sonuç olarak, bir çok Futur kullanmak sadece büyük bir varsayılan iş parçacığı olan eşzamanlı çağrıları kullanmakla aynı sonucu verir: aynı havuzda aynı sayıda iş parçacığı.Cases engelleyebilir kodunuzu eklediğinizde ...]
Bu nedenle, engelleme kodunuzu Futures uygulamasına yansıtmak isteyebileceğinizi unutmayın. Bu
aksine, IO aşağıdaki türlerde blok yok [...], sadece engelleme farklı bir iş parçacığı gerçekleşmesi anlamına gelir olmayan engelleme yapmaz: Çal WS API, ... bir play2 Java uygulamasında
Yani benim sorular şunlardır:
- gerçekten asenkron (oynatma varsayılan havuzda herhangi bir iplik engellemediğini) Java API play.libs.WS API nedir?
- Yüksek hız ve ölçeklenebilirlik istiyorsanız her zaman 3. taraf istemci kitaplığım yerine onu kullanmalıyım. Play.libs.WS API tarafından kullanılan iş parçacığı havuzu nedir ve uygulamam çok iş yaparsa boyutunu artırmalıyım WS çağırır?
- , 3. taraf senkronize istemcisini geleceğe sarmak suretiyle play.libs.WS API'si kadar async olmanın bir yolu var mı?
Çok teşekkürler
Loic
Kod baktığımızda, play.libs.WS Netty havuzunu kullanıyor (bir AsyncCompletionHandler kullanarak) Doğru muyum? –
Loic