【发布时间】:2022-11-22 11:46:15
【问题描述】:
我正在运行一个 Azure AppService(目前是 ASP.NET 4.6 WebApi),它总是在至少 2 个实例上运行,并且使用自动缩放扩展到最多 5 个实例。
这个应用程序正在处理存储在 Azure 表中的大量数据,其中很多表都是非常静态的。它们每月更新一次或两次,但在日常操作中会被阅读数千次。当我试图稍微提高该服务的性能时,我正在考虑将这些“静态”表缓存在内存中,并仅在将新更改推送到存储时更新它们。这不会成为问题,因为对存储的更改仅通过相同的 API 通过 /POST 调用进行。
但是现在我想知道在运行我的服务的多个实例时如何处理这种架构。我显然无法预测哪个实例会响应我的 /POST 调用,并且所有其他实例都不会收到更改通知。
我也不想将状态/信号量写入任何类型的共享存储,因为这会破坏试图减少存储调用的全部目的。
有什么提示可以让这些实例以某种方式相互“通信”吗?
【问题讨论】:
标签: asp.net .net azure-web-app-service azure-table-storage