Akka 当生产商比消费者快时,什么是阻止向阿克卡演员提供工作的适当方式?

Akka 当生产商比消费者快时,什么是阻止向阿克卡演员提供工作的适当方式?,akka,Akka,如果这是一个基本/众所周知的模式,请原谅,但我一直在研究,无法找到解决方案。也许我在寻找错误的术语 我有一个制作人akka-actor,它提供了几个小工作,每个工作大约50 KB。我目前通过循环路由器将这些工作分配给akka演员 问题的根源在于,生产者的速度远远快于消费者 我一直在滚动我自己的解决方案,添加等待状态,并测量进程的平均时间,以保持稳定的作业节奏,而不会炸毁actor消息队列。但这涉及到参与者之间的一些同步,我不认为这是akka的方式……它不是松散的,它是一个闭环,有反馈,导致同步问

如果这是一个基本/众所周知的模式,请原谅,但我一直在研究,无法找到解决方案。也许我在寻找错误的术语

我有一个制作人akka-actor,它提供了几个小工作,每个工作大约50 KB。我目前通过循环路由器将这些工作分配给akka演员

问题的根源在于,生产者的速度远远快于消费者

我一直在滚动我自己的解决方案,添加等待状态,并测量进程的平均时间,以保持稳定的作业节奏,而不会炸毁actor消息队列。但这涉及到参与者之间的一些同步,我不认为这是akka的方式……它不是松散的,它是一个闭环,有反馈,导致同步问题(确定发送消息的速度需要消费者的反馈)。如果我不节流,排队的人会在2到3分钟内爆满

我想我做错了

那么,当你有一个比消费者更快的制作人时,应该使用什么样的模式/方法呢?我需要中间人吗,比如消息队列或数据库

提前感谢您的指点。

就是为了解决这个问题而创建的。看看它,它处理这类处理管道的快/慢阶段之间的背压


它还可以使用此处介绍的接收器/源与参与者很好地集成。

是的,Akka Streams是解决方案。感谢Viktor Klang和Konrad‘ktoso’Malawski的回复。 这篇文章可能会从发展的角度为您提供快速帮助。

您是否尝试过仅在创建消费者时创建生产者?我只有一个生产者,但问题仍然存在。它是从生产者到消费者的吞吐量,随着时间的推移而溢出。我已经尝试创建一个大的nr的消费者,但这只是延迟了问题,以后仍然爆发。Akka Streams是你正在寻找的。谢谢你,Viktor。阅读“入门”文档似乎正是我需要的。谢谢。也感谢Viktor Klang的回复。