【问题标题】:Triggering an update on all microservices触发所有微服务的更新
【发布时间】:2022-01-16 23:37:49
【问题描述】:

使用在 Azure Service Fabric 中运行的 ASP.NET Core 微服务,包括 API 和辅助角色。 我们使用 Service Bus 进行微服务间的通信。

考虑以下情况; 每个微服务都拥有 X 类型的缓存对象的本地内存副本。 一个工作角色负责处理一条消息,该消息将导致为所有实例重建此缓存。 我们有多个节点,因此 Service Fabric 中的每个微服务都有多个实例。

触发此更新的最佳方法是什么? 我认为以下方法:

  • 为所有服务副本调用 SF 并在每个副本上触发 HTTP POST 以触发更新
    • 但这似乎不起作用,因为工作角色不公开任何 API
  • 创建一个特定的“广播”主题,其中每个实例注册一个订阅,从而使用发布/订阅机制
    • 我不知道如何确保每个实例都有自己的订阅,但我也不会在发生崩溃之类的事情时得到幽灵订阅

【问题讨论】:

  • 关于这个问题的任何更新?这个答案解决了你的问题吗

标签: asp.net-core microservices azure-service-fabric azureservicebus


【解决方案1】:

您可以为此使用 OSS library Service Fabric Pub Sub

每个服务分区都可以为给定类型的消息创建自己的订阅。 它使用分区标识符进行订阅,因此崩溃和移动不会导致幽灵订阅。

它使用常规的 SF 远程处理,因此您无需公开 API 进行消息传递。

【讨论】:

    猜你喜欢
    • 2023-02-10
    • 2017-10-24
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    相关资源
    最近更新 更多