我有一个启用会话的 Azure 服务总线队列。我需要某种形式的服务,可以从队列中读取并处理它们并保存结果(在内存中供以后检索)。我们在当前架构中使用 azure servicefabric。关于选择有状态服务还是无状态服务,我几乎没有收到任何问题。
如果我使用有状态服务,那么根据我的理解,服务将在 1 个主节点(假设 1 个分区)和 2 个活动辅助节点上运行。这意味着,如果我有一个 10 节点的 Service Fabric 集群,那么这个有状态的服务将主要只使用一个节点 (VM)。
因此,如果我向这个有状态服务添加一个侦听器以从队列中读取消息,那么主节点上的该服务将从队列中读取消息,并且所有其他剩余的 9 个节点将无法使用。这个对吗?
而如果我使用无状态服务,我可以在所有 10 个节点上创建实例,并且它们都可以监听队列中的消息并并行处理它们。但是,我将放弃保存结果的选项。
请指教。