【问题标题】:Will Azure Service Bus connection survive Azure Service Fabric node shuffling?Azure Service Bus 连接能否在 Azure Service Fabric 节点改组后继续存在?
【发布时间】:2018-10-15 05:37:27
【问题描述】:

我使用 Azure 服务总线 (ASB) 消息作为 Message-oriented middleware (MOM)。具体来说,主题和订阅作为 Pub-Sub 解决方案。

我在 Azure Service Fabric (ASF) 集群中使用 ASB。 ASF 集群管理可以对节点进行洗牌,这将终止与 ASB 的连接。

我想知道优雅终止连接的正确方法是什么?

我正在考虑在未来的集群中使用 Pub-Sub 解决方案。这将解决它和其他问题。

请检查此链接以了解为什么我要保持连接处于活动状态: "Establishing a connection is an expensive operation that you can avoid by re-using the same factory and client objects for multiple operations."

【问题讨论】:

标签: messaging azure-service-fabric azureservicebus


【解决方案1】:

当服务实例/副本从一个节点移动到另一个节点时,连接将无法生存。您需要实现一个 Service Fabric 通信侦听器,每次启动和停止服务实例/副本时都会调用该侦听器。

【讨论】:

    【解决方案2】:

    ASF 集群管理可以对可能终止与 ASB 的连接的节点进行洗牌。

    它会,当服务结构在集群中移动服务时,它会终止进程并在其他节点中启动服务的另一个实例,MessagingFactory 和每个进程的连接是隔离的,即使你使用共享的过程中,您必须在新实例出现时重新创建这些连接。

    现在,我可以将连接保存在有状态服务的可靠集合中

    我不知道你的意思,连接不像你存储在某个地方的一堆数据,它就像连接到主电源的电源线,它是否连接。

    Establishing a connection is an expensive operation that you can avoid by re-using the same factory and client objects for multiple operations.

    我认为您误解了有关此主题的想法。

    在服务启动时打开连接并不昂贵,昂贵的是在通过队列的每次迭代时打开和关闭连接。 如果您的服务经常在集群中移动,我认为连接时间将是您的问题中最少的。

    此规则适用于在迭代之间不保留状态的情况,例如,如果您必须在每个请求,这会减慢进程,在这种情况下,此规则适用,因此您将保持 QueueSender 的实例与连接打开,因此每个连续的请求重用前一个连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-30
      • 2017-03-31
      • 2016-12-06
      • 2015-09-17
      • 2016-07-20
      • 2017-07-23
      • 1970-01-01
      • 2017-11-25
      相关资源
      最近更新 更多