azure - 在服务之间共享 Azure Service Fabric 可靠队列

标签 azure azure-service-fabric service-fabric-stateful

我正在深入研究 Service Fabric(来自云服务领域),并且在 ReliableQueues 的工作方式方面遇到了一些障碍。

假设我有 2 个有状态服务 StatefulService1StatefulService2

如果我需要让 StatefulService1 在队列中发送一条由 StatefulService2 接收并读取的消息,我是否能够使用 ReliableQueues,或者 ReliableQueues 是否在服务中被隔离创建于?

如果是这种情况,那么 ReliableQueue 的目的是什么?它们背后的通常模式是让另一个进程对消息采取行动。我明白为什么将字典隔离到服务是有意义的,但不是队列......

我的最佳选择是依靠传统方法(例如存储队列)发送此消息,还是 ServiceFabric 提供在服务之间传递消息队列的解决方案?

更新

只是想澄清一下,我确实尝试将 StatefulService1 中创建的消息从 StatefulService2 中出列,但结果为空。从 StatefulService1 内部出队按预期工作正常。

最佳答案

可靠集合位于内存数据结构中,不适用于服务间通信。如果您想在 StatefulService1StatefulService2 之间建立通信 channel ,您有以下选择:

  1. 使用通信监听器。您可以为您选择的协议(protocol)设置自定义监听器,包括 HTTP、WCF 或您的自定义协议(protocol)。您可以在 section 中阅读更多相关信息。 。例如,StatefulService2 可以打开一个 HTTP 端点,StatefulService1 可以向该端点进行 POST/GET。

  2. 使用外部队列系统,例如 Servicebus、EventHub 或 Kafka,StatefulService1 可以将事件发布到其中。 StatefulService2 可以是使用队列中的事件并对其进行处理的消费者服务。

关于azure - 在服务之间共享 Azure Service Fabric 可靠队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42612786/

相关文章:

azure - Azure中有没有可以引用的表来获取分区名称?

c# - Microsoft Bot Framework 在本地工作,但在远程失败

c# - 如何将数据传递到 `OnActivateAsync()` 以初始化我的有状态 actor?

azure - 服务结构中出现错误 "The application URL is not set or is not an HTTP/HTTPS URL so the browser will not be opened to the application"

xml - Azure 的 ApplicationManifest.xml 中的 CpuPercent 如何工作?

azure - Service Fabric 本地群集上有状态服务的 “Partition is below target replica or instance count”

azure - 官方指南中管道执行时间是如何计算的?

c# - 异步 Azure SQL 调用的 ReliableSqlConnection 替代方法

azure - 通过服务总线消息传递使用 Azure 服务结构的用例有哪些?

powershell - 从 powershell 部署 Service Fabric。错误 -> 获取 ServiceFabricClusterManifest : Cluster connection instance is null