【问题标题】:Google Cloud Pub/Sub Publisher LifecycleGoogle Cloud Pub/Sub 发布者生命周期
【发布时间】:2019-09-20 21:27:35
【问题描述】:

我在 ASP.NET Web 应用程序 (.NET Standard 2) 中将 Cloud Pub/Sub PublisherClient 实例作为 Singleton 运行。这是否会保留与指定 Cloud Pub/Sub 主题的持久 HTTPS 连接,我应该显式调用 ShutdownAsync 方法,还是在应用程序池回收时让连接断开?

与 Quartz.NET 一起运行,以相对较小的批次向 Pub/Sub 发布消息,每 30 秒一次。这似乎在 3 节点 Azure 负载均衡器集群中引入了服务器关联性,其中大部分流量在运行 1 小时以上后被路由到任何给定节点。不是 100% 确定这里的最佳做法。

使用 Pub/Sub C# NuGet 包 V1 1.0 和 Quartz NuGet 3.0.7

【问题讨论】:

    标签: asp.net singleton google-cloud-pubsub azure-load-balancer quartz.net-3.0


    【解决方案1】:

    我假设您使用的是this PublisherClient。根据sample documentation,PublisherClient 实例应在使用后关闭。这可确保发送本地排队的消息。另请参阅ShutdownAsync documentation

    【讨论】:

    • 是的,就是这样。 PublisherClient在 Web 应用程序的上下文中运行,在应用程序的整个生命周期内发布消息。如果我能提供帮助,宁愿在每次发布操作后都不关机
    • 您能否安排在应用程序关闭时调用ShutdownAsync
    • 是的,这就是当前的实现。想知道这是否是最佳实践。假设可以静态方式使用PublisherClient,类似于HttpClient
    • 是否有任何关于 Pub/Sub SDK 或 Quartz.NET 的特定内容可能导致 3 节点负载平衡集群中的服务器关联?
    • Yes, that's the current implementation. Wondering if it's best practice 这似乎与文档一致。 Is there anything specific about the Pub/Sub SDK, or Quartz.NET that might cause server affinity in a 3-node load-balanced cluster 这似乎是另一个问题,需要更多背景知识。随意提出一个新问题。
    猜你喜欢
    • 2021-06-20
    • 2021-02-21
    • 2022-01-13
    • 2022-01-01
    • 2023-04-02
    • 2019-08-18
    • 2021-12-12
    • 1970-01-01
    • 2011-08-11
    相关资源
    最近更新 更多