绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
延迟队列,数据库选型,以及rocksDB
2022-04-15 16:03:13
存储
延迟队列消费者拉取到消息之后,要怎么存储?第三方存储,其需要满足以下几个条件:

高性能:写入延迟要低,MQ的一个重要作用是削峰填谷,在选择临时存储时,写入性能必须要高,关系型数据库(如Mysql)通常不满足需求。
高可靠:延迟消息写入后,不能丢失,需要进行持久化,并进行备份
存储成本低:可以支持大量消息存储,(Redis存储成本太高)。
支持排序: 支持按照某个字段对消息进行排序,对于延迟消息需要按照时间进行排序。普通消息通常先发送的会被先消费,延迟消息与普通消息不同,需要进行排序。例如先发一条延迟10s的消息,再发一条延迟5s的消息,那么后发送的消息需要被先消费。
支持长时间保存:一些业务的延迟消息,需要延迟几个月,甚至更长,所以延迟消息必须能长时间保留。不过通常不建议延迟太长时间,存储成本比较大,且业务逻辑可能已经发生变化,已经不需要消费这些消息。

基于以上条件,选择了RocksDB来存储数据:
高性能嵌入式KV存储引擎。
数据持久化到磁盘。
基于LMS存储,key自然排序,迭代器(Iterator)根据key顺序遍历。
复制代码

RocksDB是什么

嵌入式的database,基于google的levelDB二次开发,极大减少传统的RPC数据访问

  1. 适用于多CPU场景
  2. 高效利用Storge(更高IOPS,压缩,更少的写磨损)
  3. 不是分布式DB,而是高效,高性能,单点的数据库引擎
  4. 按照keys顺序存储,后台Compaction会消除重复和已删除的key。
  5. 可插拔式架构,容易替换其中组件和调优

作者:PandaIP
链接:https://juejin.cn/post/6930418165759344654

分享好友

分享这个小栈给你的朋友们,一起进步吧。

RocksDB
创建时间:2022-04-15 15:48:12
RocksDB
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • itt0918
    专家
戳我,来吐槽~