Akka 2.1文档建议使用reliable proxy pattern进行有保证的邮件传递,即邮件只传递一次并传递给收件人队列。为了确保在JVM崩溃的情况下消息不会丢失,我相信消息存储在持久队列中。
基本思想是,将消息M从演员A发送到B,它将M发送给两个代理人P和E,其中P在A侧,E在B侧。见this image for detail
actor P和E是否需要自己的持久队列?从A发送到B的消息将被保存在P的队列和E的队列中,然后才会被保存在B中?
答案 0 :(得分:3)
该模式与持久性消息队列无关:它只是旨在使远程传递与本地传递一样可靠(在由易错网络强加的不可靠性限制内)。因此,当JVM崩溃时,消息将丢失。
这些参与者(P和E)不能很好地使用持久邮箱,因为P会在内部存储邮件,即不会持久存储邮件。它会将它们从邮箱中删除。您需要调整模式以使P保持其内部队列。