Akka Streams,在killSwitch上调用shutdown后缓冲区会发生什么? DSL图

时间:2017-12-13 12:28:48

标签: akka-stream

我有DLS graphrabbitMQ相关联。 (来源和接收器)

如果我在队列中已有10条消息启动服务且akka.stream.materializer.max-input-buffer-size的值为1,并且在处理完一条消息并且另一条消息正在进行中后触发killingSwitch,则似乎我丢失了akka-streams缓冲区中的消息。 (在完成所有正在进行的作业之前,流不会关闭)

我最终在队列中剩下7条消息。

知道缓冲区是如何工作的吗?或如何访问该缓冲区?或者如何处理该消息?


启动队列消息
5646245d2b0000251a9fe92b
56def590430000fd1dac3e47
542560eae4b0ba04ec469e12 (将丢失的消息)
55835213e4b03eb77098e88e
569edf2851000098027fdad8
6cb975919f254472b61c012d0b76e119
53667258e4b09a003032bcb3
92e4765c5dae4c8485b0a3aa088b8c1b
5326b1c4e4b0b5ce16824303
5623f7912c000072223bc3af

确认消息
5646245d2b0000251a9fe92b
56def590430000fd1dac3e47
542560eae4b0ba04ec469e12 (丢失消息)

已处理的消息
5646245d2b0000251a9fe92b
56def590430000fd1dac3e47

RabbitMQ缓冲区中已重新排队的消息
55835213e4b03eb77098e88e

留在队列中的邮件
55835213e4b03eb77098e88e
569edf2851000098027fdad8
6cb975919f254472b61c012d0b76e119
53667258e4b09a003032bcb3
92e4765c5dae4c8485b0a3aa088b8c1b
5326b1c4e4b0b5ce16824303
5623f7912c000072223bc3af

0 个答案:

没有答案