redis、es、rocketmq持久化对照
2021-03-31 10:47:06 2 举报
将常应用的服务持久化进行和汇总对照包括redis、ElasticSearch、rocketMQ
作者其他创作
大纲/内容
清空磁盘
旧AOF文件
AOF缓存
2)sync AOF缓存区同步磁盘 默认everysec每秒同步磁盘
CommitLog Offset偏移量
size大小
Message Tag Hashcodetag的hashcode
子进程
5.3)新AOF文件替换老AOF文件,完成AOF重写
segment文件段
磁盘
translog 大到一定程度或每隔30分钟flush
fork
合并线程
m1
m2
m3
m4
2)fork子进行阻塞
在cache里面系统就能服务
231
21
1827
删除老的
映射进内存
一条数据是20个字节,每个文件保存30万条数据,大概5.72MB
Translog
1、消息写入到MapperFile映射缓存
fsync
3、从cache刷新到磁盘并记录commit point
1)append 所有命令追加到 aof buffer
1、生产者写入消息
es持久化
顺序写
$HOME/store/consumequeue/TopicOrderPaySuccess/MessageQueue0/ConsumeQueue0磁盘文件
merge相似的数据
3.2)同时写入AOF重新缓存区防止新的AOF文件数据丢失
生成RDB快照文件
commitLog
5.2)把重新数据写入到新的AOF文件
1)执行重新请求.正在执行重新提示失败.正在fork bgsave命令延迟到后续执行
旧RDB文件
comsumer queue1
ESdocument
2、每隔1S将内存缓存区数据刷新到cache
rocketmq持久化
3)rewrite 重新磁盘文件 AOF文件64M时候
In-memerybuffer(缓存区)缓冲输入或输出的数据
4)load 重启后重新加载数据
ComsumerQueue0
继续接收命令
3.1)继续接收命令.append到aof buffer
AOF文件
1、数据写入到内存缓存区
pageCache
物理地址
5.1)通知父进程完成重写
5S 一次 fsync
redis持久化
删除Translog
refresh
bgsave
131
100
1988
替换
commit point
内存空间
.del 文件
10就作为m1的偏移量.加上size可以从commitlog快速定位消息体
4)子进程根据规则合并快照并每次批量写入数量为32M.防止数据过多磁盘阻塞
OS线程
父进程
新AOF文件
2)sync AOF缓存区同步磁盘
31
3)父进程fork完成后,bgsave命令返回“Background saving started”解除阻塞父进程
Translog内存
3、分发dispatch
5)信号通知父线程
命令写入
IndexFile
MapperFile映射内存(mmap)
comsumer queue0
ComsumerQueue1
oscache 内存空间
4、异步刷盘最大10S间隔
bgrewriteaof
10
重启
异步同步
broker
AOF重新缓存
1)判断是否有AOF或者RDB子进程
0 条评论
下一页