Azure - 向所有其他角色发送消息并等待响应

标签 azure caching cloud azureservicebus cache-invalidation

我在多实例 Web 应用程序中需要的一个非常常见的模式是使所有实例上的 MemoryCache 失效 - 并等待确认此操作已完成。 (因为用户可能会在刷新后突然看到另一个实例上的旧数据)

我们可以通过以下组合来实现:

  • AzureServicebus,
  • 向主题发送消息
  • 其他实例将带有 ReplyTo 的消息发送回原始实例
  • 有一个等待循环来等待消息返回,
  • 首先了解还有多少其他实例。
  • 可能会超时,因为如果实例在中间崩溃会发生什么?

我认为解决所有这些小边缘情况可能需要大量工作 - 所以在我们重新发明轮子之前 - 是否已经有一个通用的模式或库?

(当然,一种解决方案是使用像 Redis 这样的共享缓存,但在某些情况下,内存缓存要快得多)

最佳答案

查看 Azure Durable Functions,例如Fan-In/Fan-Out scenario 。它们在底层使用 Azure 存储队列,但提供更高级别的抽象。

请注意,Durable Functions 仍处于早期预览阶段(截至 2017 年 8 月),因此尚不适合生产使用。

关于Azure - 向所有其他角色发送消息并等待响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45837447/

相关文章:

Azure 应用服务性能问题

android - 使用 RxJava 缓存网络调用一段时间

caching - 处理器的指令在哪里?在 CPU 缓存中还是?

azure - 从分区事件中心消费以避免 QuotaExceededException 的正确策略是什么?

Azure 存储文件 "Authentication scheme Bearer is not supported." "AuthenticationFailed"

c# - 使用Azure功能处理Azure服务总线队列消息

java - 在 Guava Cache 对象上启用统计信息的性能损失是多少?

google-app-engine - 'instances' 在云计算方面意味着什么?

php - 如何从不同的服务器连接到 Google Cloud SQL 实例

amazon-web-services - 编辑云形成模板会终止现有实例并创建新实例