内容简介:Bloom与您的API实现完全无关,并且只需对现有API代码进行最少的更改即可。Bloom使用redisBloom可以热插拔,位于您现有的Load Balancers(例如NGINX)和您的API worker(例如NodeJS)之间。最初构建它是为了减少工作负载,并在API流量高峰或DOS / DDoS攻击的情况下大幅降低CPU使用率。更简单的高速缓存方法一般是直能够在负载平衡器级缓存读取HTTP方法(GET,HEAD,OPTIONS)。虽然这个作为解决方案很简单,但它不适用于REST API。REST
Bloom与您的API实现完全无关,并且只需对现有API代码进行最少的更改即可。Bloom使用redis 配置作为缓存 来存储数据。使用Rust构建,专注于稳定性,性能和低资源使用。
Bloom可以热插拔,位于您现有的Load Balancers(例如NGINX)和您的API worker(例如NodeJS)之间。最初构建它是为了减少工作负载,并在API流量高峰或DOS / DDoS攻击的情况下大幅降低CPU使用率。
更简单的高速缓存方法一般是直能够在负载平衡器级缓存读取HTTP方法(GET,HEAD,OPTIONS)。虽然这个作为解决方案很简单,但它不适用于REST API。REST API本质上提供动态内容,严重依赖授权标头。此外,如果缓存中的内容由于某些数据库中的数据更新而变得陈旧,则需要在某些时候清除任何缓存。
NGINX Lua脚本也可以这样做得很好!好吧,我坚信我们的方案应该很简单,只是基于配置,没有脚本。由于负载平衡器是所有HTTP / WebSocket服务的入口点,因此避免了频繁部署和自定义代码,并将缓存复杂性移交给专用中间件组件。
它是如何工作的?
Bloom与每个API工作程序安装在同一服务器上。从Load Balancers可以看出,每个API worker都有一个Bloom实例。这样,您的负载平衡设置(例如,带有运行状况检查的Round-Robin)就不会中断。每个Bloom实例都可以设置为可以从负载平衡器指向的自己的LAN IP中看到,然后这些Bloom实例可以指向本地的API工作者侦听器。
特征:
- 同一个Bloom服务器可以同时用于不同的API工作者 。
- 存储在存储桶上的缓存,使用HTTP标头在REST API响应中指定Bloom-Response-Buckets。
- 通过身份验证令牌聚集的缓存,使用标准AuthorizationHTTP头可以在用户之间没有缓存泄漏。
- 缓存可以通过控制通道直接从REST API失效过期。
- 可配置的每请求缓存策略
- 可配置的每响应缓存策略
- 服务304 Not Modified于未修改的路由内容,降低带宽使用并加快对用户的请求。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- PostgreSQL 负载均衡中间件 Pgpool-II 五版齐发
- PostgreSQL 负载均衡中间件 Pgpool-II 5 版齐发
- Pgpool-II 小版本更新发布,PgSQL 负载均衡中间件
- Pgpool-II 4.1.0 发布,PgSQL 负载均衡中间件
- Pgpool-II 最新小版本更新发布,PgSQL 负载均衡中间件
- Pgpool-II 最新小版本更新发布,PgSQL 负载均衡中间件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JSON 在线解析
在线 JSON 格式化工具
RGB CMYK 转换工具
RGB CMYK 互转工具