【问题标题】:Robust way to send and handle messages for a distributed system为分布式系统发送和处理消息的稳健方法
【发布时间】:2009-08-25 12:19:01
【问题描述】:

我正在开发一个完全由消息驱动的小型分布式系统。现在,我通常每次必须发送东西时打开一个套接字,然后立即关闭它。状态仅在服务器端维护(例如,如果 5 分钟内没有消息从客户端到达,则认为它已死)。

但是,我还必须在客户端上对消息进行一些低级调度(如果状态消息无法到达服务器,请重试,如果仍然失败,则假设服务器已关闭,切换到不同的服务器等) ,以及必须在客户端和服务器上手动侦听(加上交换如何从服务器到达客户端的信息)。我还计划添加某种广播系统,但这开始堆积起来......所以问题是,是否有一些现有的 .NET 总线/消息传递系统可以与 Mono 和 Microsoft 一起使用,它处理这个消息传递东西?我查看了 NServiceBus,但它依赖于 MSMQ(仍然如此?),Mono 或多或少地支持它;总而言之,NServiceBus 看起来已经有点过于重量级了。理想情况下,系统将支持 1:1 和 1:N 连接,稳健地处理错误并报告错误,并具有一些高级功能(排队消息、安全性)。

【问题讨论】:

    标签: .net mono distributed-computing


    【解决方案1】:

    你看过RabbitMQ吗?

    【讨论】:

    • 这只是界面,我不会担心。在最坏的情况下,我认为它会比手写的东西更好。特别是考虑到您可以查看源代码。
    • FWIW,Mono 的 System.Messaging(alpha)实现使用 RabbitMQ。 mono-project.com/SystemMessaging
    【解决方案2】:

    Marc Gravellprotobuf-net 库。 Google 的协议缓冲区支持多种语言。

    【讨论】:

      【解决方案3】:

      你看过 Mono-Olive 吗?我知道他们正在实施 WCF,如果他们现在已经实施到足够有用的话,这可能是您的最佳选择。

      【讨论】:

      • 看起来充其量是在进行中;问题是,它应该是健壮的——至少是几个已发布的版本。
      猜你喜欢
      • 2017-03-04
      • 2015-01-11
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-07
      相关资源
      最近更新 更多