使用标头而不是 Cookie 定位特定的 Azure Web 应用实例

Dir*_*oer 5 cookies caching scalability azure azure-web-app-service

我有一个架构,其中有多个实例,但我想最大化缓存命中

用户是按组定义的,我想确保属于同一组的所有用户尽可能多地访问同一台服务器。

该应用程序是完全无状态的,但让来自同一组的用户访问同一台服务器将显着提高所有实例的性能和内存负载。

加载主页时,我已经知道我想在 XHR 调用中将此用户发送到哪个服务器。

使用ARRAffinitycookies并不是很好,几乎是不可能在这种情况下(跨域,必须使服务器调用第一等),我强烈希望通过自定义标题发送提示自己。

我正在尝试通过删除 cookie 并分配它们来手动执行一些变通方法,但感觉非常棘手,我还没有完全正常工作。它不适用于 XHR 呼叫。

题:

是否可以通过标头、url 或域而不是cookie指向特定实例?

笔记

  • 在这种情况下,分布式缓存对我不起作用。我需要没有额外网络跃点和序列化/反序列化的内存缓存性能。
  • 应用程序网关似乎可以做到这一点,但它似乎需要大量额外的基础设施和活动部件,而我的所有问题都可以通过发送“正确”的标头来解决。
  • 我可以通过完整复制 Web 应用程序并分配不同的主机名来解决此问题。此外,这感觉就像添加了许多可能会损坏的额外移动部件。维护也会变得更加困难和混乱,我失去了自动缩放等。
  • 也许这可以通过 Kubenetes/Docker Swarm 类型的架构轻松解决(没有经验),但由于这是一个大型遗留项目,而且我有一个非常严格的截止日期,我非常谨慎地在最后一刻做出如此戏剧性的转换。