Data receiving actor goes to Terminated
state due to possible cause: channel flooding
#6925
-
Hi! Akka version. Environment.
Problem.
Bad solution.
Question. The recipient processes messages one at a time (no more than one message in his queue), while the sender sends thousands of messages. Why might this happen? Another attempts.
NOTE! |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 15 replies
-
@ArtyomAfanasovBS what would cause the actors to shut down? Actors running over Akka.Remote can't do that without end-user code forcing them to even if there's a connectivity problem. Are you using Akka.IO to send these messages over the network? |
Beta Was this translation helpful? Give feedback.
-
@Aaronontheweb , thanks for the quick response!
|
Beta Was this translation helpful? Give feedback.
-
I'm not sure about Akka.IO. How can I know if Akka.IO is being used? I send messages between actors via |
Beta Was this translation helpful? Give feedback.
-
Good afternoon! :) I added batch messaging to the configuration, but it didn't help. The recipient's mailbox is still very limited. Sometimes it holds 2-3 messages (rather than one as I said earlier), but the vast majority of the time it only holds one message.
Of course, I could try to use the |
Beta Was this translation helpful? Give feedback.
I still don't see any indication of actors terminating, but I do see that the Akka.Remote connection has become quarantined (which renders it unusable.) That's caused by
/system
messages not being able to get processed / acknowledged on-time by Akka.Remote's reliable delivery system and that happens when the network becomes excessively busy or destabilizes.Since you're using WIFI you're going to be running at a higher per-message latency due to the inherent lossy-ness of the connection.
Your fundamental problem is a backpressure issue, which I explain in broad terms in this video:https://www.youtube.com/watch?v=0KYoIvrM9VY
What I would do in your case: you need some way to emit a batch o…