我正在开发一个支持用户和组的 API 网关服务器。
我有一个类似于以下的 API 端点。
/authorization/users/1?resource=users
基本上,它是在问“这个用户 1 可以访问‘用户’吗?”。
我想在 Varnish 中缓存“/authorization/users/1?resource=users”。
权限可以设置为用户级别或组级别。每个用户至少属于一个组。
用户级缓存失效很容易,因为我只需要将 PURGE 请求发送到单个 URL。
当涉及到组时,它很复杂。一个组可以有超过 50000 个用户。如何使这些用户无效?
查看https://www.varnish-software.com/blog/advanced-cache-invalidation-strategies,使用X-Article-ID可能是一个很好的解决方案。我担心的是..它如何处理大量的对象?会不会有很大的 CPU 使用率?它处理 50000 个对象的速度有多快?
有没有更好的方法?