-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Delays with message delivery to different actor groups #154
Comments
@darthur11 sorry for the late response. Assuming you're compiling in the release mode, none of your latencies are okay if destination actors aren't overloaded. Expected latency (if the destination is empty, the However, if the destination actor is overloaded (so there are spikes in the number of messages in the mailbox), this latency increases (Little's law). Elfo provides different metrics to localize problems:
More info in the actoromicon. So, I recommend checking these metrics to understand whether the destination actor is overloaded or not. Also, your routing table is a bit strange. I would expect one group for all order cancellers with |
Wow, thank you very much for explanation @loyd . I will dig dive more into metrics to localize the problem. Also thought, that reasonable time for message to reach destination should be in micros or even nanos, not millis for sure. As for topology you're absolutely right and we're planning to use Actor group + exchange key. If you don't mind, I will keep this issue for a few days, in case I have more comments/questions on the topic. |
Yes, sure, feel free to ask more; I'll be happy to help you.
Definitely
To preserve detailed metrics per exchange, I recommend enabling the Also, do you use prometheus/victoriametrics to collect metrics? I can share the Grafana dashboard (part of it you can see on the main page of https://actoromicon.rs/), which is very useful for understanding what's going on with actors because it shows all these important metrics. |
Yeah, I use Prometheus for Grafana for basic metrics, but having your example could help a lot as well. Can get more inspiration about metrics. Thanks! |
Hi @loyd,
Last time I've asked about topologies and you've helped a lot. I'm kind of fan of elfo, but at the moment having an issue with message delivery delays.
Let's me start from the short intro. We have a topology which consists of several actor groups. Let's discuss these 5:
Then we're running them like that:
And here is the log on Trace level, so we have all messages showed here as well:
Trace level logs:
The main issue we're having right now is that messages are reached different actor groups with a significant delay.
I can't understand why it's happening, cause in my understanding messages should reach destination in sub millisecond timeframe. Could you please suggest any ideas on debugging/profiling the code?
P.S. Here we are not using Arc to send only references, but we're pushing the whole struct into ctx. Maybe that could be an issue.
Thanks a lot!
The text was updated successfully, but these errors were encountered: