有可能“铲”一个持久的akka​​邮箱吗?

时间:2013-05-03 20:47:57

标签: akka

我有一个AMQP应用程序,它在客户端有一个持久的RabbitMQ队列,在服务器端有一个RabbitMQ队列。客户端总是写入本地持久队列,并使用铲子插件将这些消息传输到服务器。

Producer -> Local Queue  --------- SHOVEL ---------- Remote queue -> Consumer

服务器是否不存在,应用程序仍然有效,铲尽可能发送。另一方面,服务器不需要知道客户端的位置,因为它总是来自本地队列。我想使用FilePersistent Mailbox将此拓扑迁移到AKKA。它甚至可能吗?在Akka核心库中是否有类似Federation或Shovel插件的东西。

PS:我想要实现的是完全取代AMQP以摆脱RabbitMQ。它工作正常,但是另一个软件安装,配置和mantain。我想使用库而不是像RabbitMQ这样的其他服务器从我的应用程序提供所有这些功能。

只是为了澄清我想要实现的更多内容是这样的:

Actor1 -> DurableMailBox1  ----Shovel? Federation?---- DurableMailbox2 <- Actor2

[编辑]

看起来没有办法直接将邮箱与邮箱通信。可以使用AKKA实现的拓扑结构如下:

 Remote Actor1 -> [DurableMailBox1 <- Actor2]

可以保护箭头以确保邮件传递,但无法自动将邮件从一个邮箱复制到其他邮箱。

1 个答案:

答案 0 :(得分:0)

查看Akka RemotingReliable Proxy Pattern

  

通过ReliableProxy发送消息使发送完全可靠   好像所表示的目标是在同一个JVM中生存,   只要远程actor系统没有终止。有效,   两端(即JVM和actor系统)必须被视为一个   评估此通信信道的可靠性。好处   就是中间的网络被从这个等式中取出。

请参阅ReliableProxy的this enhancement,以缓解远程actor系统终止的问题。