【问题标题】:Akka.Net custom Mailbox, custom IMessageQueue, or something elseAkka.Net 自定义邮箱、自定义 IMessageQueue 或其他
【发布时间】:2016-03-14 19:21:51
【问题描述】:

我们正在使用 Akka.Net,在某些情况下,我们需要参与者进行可靠通信,同时保持消息队列(即 Oracle 高级队列或 WebSphere MQ,但任何消息队列系统都可以工作,例如 RabbitMQ)的顺序。

为什么我们使用消息队列有各种要求,所以问题不是我们是否应该在 Akka 中使用它,问题是如何使用。

我们将如何将队列连接到 Akka 以使其尽可能无缝?

自定义邮箱是下线的路线吗?我们需要纠正一个自定义的IMessageQueue 实现吗?或者也许我们需要一个定制的路由器?我们可以运行任何特定的测试来确保我们的Mailbox/IMessageQueue 与 Akka.Net 一起工作吗?

编辑: 我们是否应该寻求实现自定义传输?

能否提供任何关于从哪里开始的指针?

【问题讨论】:

    标签: akka.net


    【解决方案1】:

    一般来说,基于一些可靠队列实现自定义邮箱是不可行的解决方案——实际上它已经在 Akka JVM 端完成了,但它辜负了所有希望。

    其中一个基本原因通常是对基本思想的误解——当人们谈论可靠交付(MQ 系统提供)时,他们真正的意思是可靠处理。如果您的消息已以 100% 的传递率发送,但最终接收参与者/节点在处理它们时崩溃了怎么办?从邮箱的角度来看,一切都很顺利......

    出于这个原因,通常要走的路是一个专门的参与者 - 或他们的层次结构 - 作为外部消息系统的网关。这样,您不仅可以向它们发送消息,还可以在成功完成过程的明确确认后将它们标记为接收。其中一个例子可能是akka-rabbitmq(用 Scala 编写)。

    【讨论】:

    • 谢谢,我实际上与核心团队的 Aaron 进行了交谈,他解释得很清楚
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多