Oracle NoSQL Cloud Service是否支持设置每秒最大read units消耗量
Oracle NoSQL Cloud Service读单元消耗上限配置说明
可以实现你所说的需求,Oracle NoSQL Cloud Service原生支持针对不同操作/不同表设置每秒最大读单元(Read Units, RU)消耗量的功能,完全满足你预留配额、限制非核心操作消耗的场景。
40K读配额场景配置方案
你总共有40K读配额,要给第一类操作预留20K、第二类操作最多消耗20K的需求,可根据业务场景选择以下两种实现方式:
方式1:两类操作访问不同表(最常用方案)
如果第一类、第二类操作分别访问独立的表集合,直接通过表级吞吐量配置即可实现:
- 给第一类操作关联的所有表,配置总预留读单元为20K,这部分配额为专属预留,不会被其他操作抢占
- 给第二类操作关联的所有表,配置总最大读单元上限为20K,即使第二类业务请求突增,最高也只会消耗20K读配额,永远不会占用第一类操作的预留资源。
方式2:两类操作访问同一张表
如果两类操作需要访问同一张表,可通过操作标签+标签级配额管控实现:
- 给第一类操作的所有请求打上自定义标签(比如
priority_high),配置该标签的最低保障读配额为20K - 给第二类操作的所有请求打上自定义标签(比如
priority_low),配置该标签的最大读配额上限为20K
以Java SDK为例,给请求打标签的代码示例:
ReadRequest readRequest = new ReadRequest().setTableName("your_table") .setKey(key) // 给当前请求打低优先级标签 .setOperationLabel("priority_low");
通过CLI配置标签级配额的命令示例:oci nosql table update-usage-plan --table-name your_table --read-unit-reserved-per-label '{"priority_high": 20000}' --read-unit-limit-per-label '{"priority_low": 20000}'
配置生效后,系统会自动做资源调度:高优先级标签的20K配额会优先保障,低优先级标签的读请求消耗超过20K时,会直接返回
READ_LIMIT_EXCEEDED错误,你可在业务侧做重试或降级处理,完全不会影响第一类操作的资源可用性。
内容的提问来源于stack exchange,提问作者devappsnosql75
相关产品推荐
相关产品推荐

