rqlite 完全指南
rqlite 完全指南
rqlite — 基于 Raft 共识协议的分布式 SQLite 数据库,用 Go 语言编写,兼具轻量与高可用。
为什么写这份指南?
rqlite 是一个将 SQLite 变成分布式数据库的开源项目。它保留了 SQLite 的简洁性,同时通过 Raft 协议实现了多节点数据复制和高可用(High Availability)。对于需要轻量级持久化、但又不想依赖 MySQL/PostgreSQL 的场景,rqlite 是一个极具吸引力的选择。
本指南从零开始,覆盖 rqlite 的核心概念、安装部署、集群管理、安全配置、性能优化、监控运维等方面,适合以下读者:
| 读者类型 | 适用章节 |
|---|---|
| 初学者,想了解 rqlite 是什么 | 第 1-4 章 |
| 后端开发者,需要在项目中集成 rqlite | 第 5、10 章 |
| 运维工程师,负责部署和管理集群 | 第 6、7、8、11、12、13 章 |
| 架构师,评估技术选型 | 第 1、9、14 章 |
章节目录
| 章节 | 标题 | 关键词 |
|---|---|---|
| 第 1 章 | rqlite 概念与适用场景 | Raft、SQLite、分布式、适用场景 |
| 第 2 章 | 安装与集群搭建 | 二进制、Docker、集群初始化 |
| 第 3 章 | 架构深度解析 | Raft 共识、SQLite 存储、HTTP API |
| 第 4 章 | 基础操作 | 创建表、CRUD、查询 |
| 第 5 章 | HTTP API 详解 | 参数绑定、事务、一致性级别 |
| 第 6 章 | 集群管理 | 节点管理、Leader 选举、数据同步 |
| 第 7 章 | 备份与恢复 | 自动备份、手动恢复、快照 |
| 第 8 章 | 安全配置 | TLS、认证、访问控制 |
| 第 9 章 | 性能优化 | 读优化、批量写入、连接管理 |
| 第 10 章 | 客户端开发 | Python、Go、Java、CLI |
| 第 11 章 | 容器化部署 | Docker、Docker Compose、Kubernetes |
| 第 12 章 | 监控与可观测性 | 状态 API、Prometheus、Grafana |
| 第 13 章 | 故障排查 | 常见问题、集群问题、日志分析 |
| 第 14 章 | 最佳实践 | 何时使用、生产规范、架构建议 |
快速开始
如果你想先体验再深入学习,可以用 Docker 快速启动一个单节点:
docker run -p 4001:4001 rqlite/rqlite
然后执行你的第一条查询:
curl -G 'localhost:4001/db/query' --data-urlencode 'q=CREATE TABLE demo (id INTEGER PRIMARY KEY, name TEXT)'
curl -XPOST 'localhost:4001/db/execute' -H 'Content-Type: application/json' -d '[["INSERT INTO demo VALUES(1, \"hello rqlite\")"]]'
curl -G 'localhost:4001/db/query' --data-urlencode 'q=SELECT * FROM demo'
更多细节请从 第 1 章:rqlite 概念与适用场景 开始阅读。
环境说明
本指南中的示例基于以下环境编写和测试:
| 项目 | 版本 |
|---|---|
| rqlite | v8.x |
| Docker | 24.x+ |
| Go | 1.21+ |
| Python | 3.10+ |
| curl | 8.x |
注意: 不同版本的 rqlite API 可能存在细微差异。生产部署前请务必参考 rqlite 官方文档 确认版本兼容性。