Kafka 权威指南--可靠的数据传递
# 可靠性保证
- 保证分区消息的顺序性
- 只有当消息被写入分区的所有同步副本时,才会被认为是已提交的
- 只要还有一个副本是活跃的,已提交的消息就不会丢失
- 消费者只能读到已经提交的消息
Kafka 权威指南--深入 Kafka
# 集群成员关系
每个 broker 拥有一个 ID,加入或退出集群时会在 zk /brokers/ids 路径上注册或删除自己的 ID。
# 控制器
broker 启动时会在 zk /controller 路径上注册成为控制器,第一个成功注册的 breker 会成为控制器,负责分区首领的选举。
Kafka 权威指南--初识 kafka
# 基本概念
消息:Kafka 的数据单元
批次:一组消息
模式:消息的结构定义
主题:消息通过主题分类
分区:一个主题有多个分区
生产者:创建消息发送到一个主题
消费者:读取一个或多个主题的消息
Redis 单机数据库的实现—RDB 持久化
# 介绍
RDB 文件中保存了内存中的数据库状态,也可以从 RDB 文件中还原出一个完整的数据库状态,避免数据意外丢失。
# RDB 文件的创建与载入
生成文件命令:
- SAVE,会阻塞服务器进程,期间服务器不能处理任何命令请求
- BGSAVE,派生出一个子进程,不会阻塞服务器进程,期间服务器会拒绝 SAVE 和 BGSAVE,避免竞争,BGSAVE 也不能和 BGREWRITEAOF 同时执行,避免同时执行大量的磁盘写入操作。
载入是在服务器启动时自动执行的,没有命令进行手动载入,期间服务器一直处于阻塞状态。不过如果服务器启动了 AOF,会优先使用 AOF 还原数据库状态。
Redis 单机数据库实现—AOF 持久化
# 介绍
RDB 文件中保存的是数据库状态,AOF 文件中保存的数据执行命令,是数据库过程。
# 持久化的实现
# 命令追加
执行完一个写命令后,会以协议格式将命令追加到服务器状态的 aof_buf 缓冲区的末尾。