如何在Akka.Net中的演员之间合并消息

时间:2019-09-03 14:33:53

标签: akka akka-stream akka.net akka.net-streams

请考虑以下演员图:

A
 \
  \
A--B
  /
 /
A

许多快速行动者A询问(这很重要,他们不能仅仅告诉他们)不能处理所有消息的缓慢行动者B

我当前的实现中放置了一个中间角色,在中间角色之间合并了A和B之间的请求。所以看起来像这样:

A
 \
  \
A-- Conflator - B
  /
 /
A

因此Conflator保留邮件和发件人列表,当B表示准备处理更多项目时,它会告诉A相应的响应,并发送所有经过处理的项目至B为止,并清除其缓冲区。它是自定义类,但扩展性或记录性很差,但效果很好。

现在,我阅读了Akka Streams文档(尤其是this part),该文档与我想要的完全一样。除非我不确定如何在参与者之间注入这种机制以保持性能(在这种情况下是个问题)和可组合性。

执行该操作是否有任何建议/示例/ ...?还是建议这样做,还是我应该坚持天真的实现?我更喜欢C#上的示例,尽管我也知道Scala,所以如果答案是Scala片段(如果答案根本没有任何代码),那也没什么大不了的。

0 个答案:

没有答案