2017-06-13 41 views
2

我用阿卡流ActorPublisher演員作爲流每個連接的數據Source發送到傳入的WebSocket或HTTP連接。阿卡流作爲網絡響應源ActorPublisher - 如何背壓工作

ActorPublishercontract是定期通過提供需求請求數據 - 下游可接受的元素數量。如果需求爲0,我不應該發送更多元素。我觀察到,如果我緩衝元素,當消費者速度緩慢時,緩衝區大小在1到60之間波動,但大多數在40-50之間。

要流我使用阿卡-HTTP「s到的WebSocket輸出和HttpResponse數據設置爲MessageSource S(或ByteString S)的能力。

不知背壓如何在這種情況下 - 當我通過網絡流數據到客戶端。如何計算這些數字?它檢查網絡級別發生了什麼?

+0

I * *認爲是阿卡流I/O層代表到TCP背壓,但我沒有證據 - 在I/O代碼有太多我很難破譯:( –

回答

1

我能找到你的問題最接近的「背壓在這種情況下如何工作」是從the documentation

阿卡HTTP通過流了一路,這意味着 背壓通過阿卡流啓用機制是通過 暴露所有層-從TCP層,通過HTTP服務器,向上 一路到用戶面臨的HttpRequest和HttpResponse對象和他們的HttpEntity 的API。

至於「如何計算這些數字」,我認爲是specified in the configuration settings