日志服务的数据模型中,使用Shard来控制Logstore的写入、读取吞吐能力,每个Shard提供5MB/sec写入、10MB/sec读取,通常情况下,shard越多,Logstore的吞吐越大。
在创建Logstore时,可以根据实际数据量来进行预先设置shard的个数,同时,日志服务提供shard的split和merge功能,在日志量超过现有shard处理能力的情况,用户可分裂shard提升Logstore的处理能力。
但是,你有没有为这样情况而烦恼 :
- 事先无法准确预估数据量,预设多少个shard才合适呢
- 数据量随时会突增,人不一定能够及时处理,长时间超quota无法写入而导致丢失的风险
针对以上情况,日志服务提供了Shard自动分裂功能,后台实时监控每个shard的流量,如果发现一个shard的写入在一段时间内,有连续出现超过shard处理能力的情况,会触发shard的自动分裂。触发条件:
- 数据量超出Shard的服务能力,且持续5分钟。
- Logstore中readwrite状态的Shard数目未超过设定的最大shard总数。
开启Logstore的自动分裂功能也非常简单,只要修改一下Logstore属性:
配置项 | 说明 |
---|---|
自动分裂shard | Shard自动分裂功能开关。开启该功能后,满足条件的Shard会在数据量超出Shard服务能力时自动分裂。 |
最大分裂数 | Shard自动分裂后的最大数目。开启自动分裂Shard功能后,最大可支持自动分裂至64个分区。 |
开启Shard自动分裂后, 你的Logstore将直接拥有自动弹性扩容的能力,解决流量估算不准、随时可能上涨又难以及时处理的问题,保障数据完整。