我知道这是两个不同的系统,目的略有不同,但在某些情况下,它们可以服务于相同的目标,我想知道将我们的一些服务从 NServiceBus (NSB) 迁移到 Orleans 或 MS 有多容易服务结构。我花了几个小时从高层次上了解 Orleans 和 MS Service Fabric 是什么,但有些问题没有得到解答。我能否列出一些我想在迁移中保留的 NSB 功能,希望您能判断 Orleans 或 Service Fabric 是否支持类似的功能:
在 NSB 中,我们可以设置服务应该运行的最大线程数,以便我们可以优先考虑具有低延迟的服务而不是具有高延迟的不太关键的服务。我可以在单个或多个应用程序服务器上配置最大数量的实例,特定于 Orlean 的谷物应该在其下运行吗?我说的是具有不同 ID 的谷物
我们的一些服务依赖于可能暂时不可用的第三方服务调用。如果抛出异常并且消息通过配置的重试次数运行。如果处理该消息的所有进一步尝试都结束了(服务仍然不可用),则该消息将被放入错误队列中,我们可以在其中看到它并在第三方服务恢复正常时随时重新处理。我知道我们可以在 Orleans 之上实施其他工具以拥有类似的系统,但是 Orleans 或 MS Service Fabric 是否在消息重试和在特殊位置或特殊状态下失败的消息/呼叫存储方面提供开箱即用的东西?
在极少数情况下,当我们的系统因客户端发起的传入消息而过载时,消息会卡在传入队列中,系统会尽其所能处理,而所有其余消息都在等待轮流按照“先到 -先到先得”的原则。我猜奥尔良不能满足这个要求,因为它听起来更像是一个纯粹的排队概念,但以防万一有人知道如何将它迁移到奥尔良,比如集成到某种排队系统