【问题标题】:How do I send durable messages with Grails?如何使用 Grails 发送持久消息?
【发布时间】:2013-11-30 10:33:56
【问题描述】:

免责声明:.Net 人试图学习 grails。

我已经习惯于使用分布式和持久的消息传递层构建服务,以便与 NServiceBus 和 MSMQ 进行服务间通信。

对于不熟悉的人,NServiceBus 仅通过引用程序集来提供消息传递,执行一些快速依赖注入。

然后,为了使用它,我可以简单地通过执行类似bus.Send("location", messageObject) 的命令和bus.publish(messageObject) 的发布/订阅情况来发送消息。然后,我所要做的就是创建一个“侦听”我的 messageObject 类型的服务,然后我就会收到消息。

它还提供了一些他们称之为超时的东西——基本上会在 x 时间后触发一些事件处理程序(对于发送提醒或按计划做某事很有用)。

我正在寻找类似的东西。我发现一篇文章建议将 grails 本身用作 ESB,但我不明白 grails 如何提供可靠和持久的消息传递。我的意思是 - 如果服务 A 向服务 B 发送消息,并且服务 B 已关闭,则服务 A 将稍后重试。一个更复杂的例子是一个 saga——客户端启动一个 saga,服务 A 做某事,服务 B 做某事,都在完成处理后向 saga 报告,然后 saga 向服务发送消息C 所以它可以做它的事情,知道服务 A 和 B 都完成了他们的工作。

PS:如果这个问题太宽泛,请告诉我如何完善它。我刚刚开始学习 grails,所以我什至不确定我需要从哪里开始研究。

编辑:意识到我忘了添加文章-http://jlorenzen.blogspot.com/2009/03/grails-create-app-esb

【问题讨论】:

    标签: grails message-queue messaging esb


    【解决方案1】:

    我可能会使用一些具有 Grails 插件(如 RabbitMQ)的 AMQP 队列。

    虽然这不会为您提供 MSMQ 上 NServiceBus 的所有功能,但您将获得所需的持久消息传递行为。您放弃/必须自己实现的东西包括一些重试逻辑、sagas 和消息幂等性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多