ActorDB配置完全手册:从单机部署到集群管理的每一步
【免费下载链接】actordb ActorDB distributed SQL database 项目地址: https://gitcode.com/gh_mirrors/ac/actordb
ActorDB分布式SQL数据库配置完全手册为您提供从单机部署到集群管理的完整指南。ActorDB是一个结合了KV存储可扩展性和关系数据库查询能力的分布式SQL数据库,特别适合需要大规模并发处理的应用场景。在本指南中,您将学习如何配置ActorDB以满足不同规模的应用需求。🎯
📦 ActorDB单机部署配置
快速安装ActorDB
要开始使用ActorDB,首先需要从官方仓库克隆项目:
git clone https://gitcode.com/gh_mirrors/ac/actordb
cd actordb
ActorDB提供了多种安装包,包括Ubuntu/Debian、CentOS/RHEL、macOS和通用Linux版本。选择适合您系统的安装包进行安装。
基础配置文件详解
ActorDB的核心配置文件位于 etc/app.config 和 etc/vm.args。让我们深入了解这些关键配置:
存储配置 - 在 etc/app.config 中:
{main_db_folder,"var"},
{max_db_size,"1TB"},
这里设置数据库存储目录和最大存储空间。ActorDB使用LMDB存储引擎,需要预先指定最大数据库大小。
网络接口配置:
{thrift_port,33306},
{mysql_protocol, 33307},
ActorDB支持Thrift API和MySQL协议,您可以根据需要启用相应的端口。
性能调优参数:
{num_transaction_managers,12},
{query_timeout,10000},
事务管理器数量影响并发处理能力,查询超时设置确保长时间运行的查询不会阻塞系统。
安全配置最佳实践
数据持久化策略:
{fsync, {interval,1000}},
ActorDB提供三种fsync策略:
safe:每次写入都同步到磁盘,最安全但性能影响最大interval:定时同步,平衡安全性和性能fast:快速写入,依赖操作系统同步
节点安全配置 - 在 etc/vm.args 中:
-name testnd@127.0.0.1
-setcookie actordb
节点名称和cookie设置对于分布式环境的安全至关重要。
🔗 ActorDB集群配置与管理
集群架构概述
ActorDB集群采用无主架构,所有节点都是等价的。集群通过Raft分布式一致性算法确保数据一致性,并提供自动故障转移功能。
多节点集群配置
节点配置示例 - 在 rel/files/vm.args 中:
-name node1@192.168.1.101
-setcookie actordb
集群网络配置 - 在 test/etc/app.config 中:
{pmd,[{connect_offset,{{ connect_offset }} }, {nodes,[
{{ pmd_nodes|join:"," }}
]}]}
集群部署步骤
- 准备多台服务器:确保所有节点网络互通
- 统一配置cookie:所有节点使用相同的cookie值
- 配置节点发现:设置pmd节点列表
- 启动集群节点:按顺序启动各个节点
- 验证集群状态:使用管理工具检查集群健康度
集群扩容与缩容
添加新节点:
- 在新服务器上安装ActorDB
- 配置相同的cookie和节点列表
- 启动新节点,它会自动加入集群
- 数据会自动重新平衡
移除节点:
- 优雅关闭要移除的节点
- 更新剩余节点的配置
- 数据会自动迁移到其他节点
⚙️ 性能优化配置
内存与进程调优
在 rel/files/vm.args 中的关键参数:
+P 256000
-env ERL_MAX_PORTS 65536
-env ERL_MAX_ETS_TABLES 8192
+P:设置Erlang进程最大数量ERL_MAX_PORTS:最大并发端口/套接字数ERL_MAX_ETS_TABLES:ETS表最大数量,影响客户端连接数
存储优化配置
多存储目录配置:
% {extra_db_folders,["/someplace/else"]},
可以配置额外的数据库文件夹来分散I/O负载。
复制空间配置:
{max_replication_space, {5000,0.1}}
确保节点故障时能够从其他节点恢复数据。
连接池与超时设置
{client_inactivity_timeout, 10000},
设置客户端连接空闲超时,释放不活跃的连接资源。
🛡️ 安全与监控配置
访问控制配置
网络接口限制:
%{api_network_interface,"127.0.0.1"},
限制API只监听特定网络接口,增强安全性。
日志配置
在 etc/app.config 中的日志配置:
{lager_file_backend, [{file, "log/error.log"}, {level, error}]},
{lager_file_backend, [{file, "log/console.log"}, {level, info}]}
配置不同级别的日志输出,便于问题排查。
监控与告警
SASL错误日志:
{sasl_error_logger, {file, "log/sasl-error.log"}},
{errlog_type, error},
配置系统级错误日志,监控节点健康状况。
🔧 高级配置技巧
SQLite扩展支持
{sqlite_extensions_folder,"extensions"},
启用SQLite扩展支持,可以加载自定义的SQLite扩展模块。
自定义架构管理
通过 etc/init.sql 文件可以定义初始数据库架构:
-- 创建用户表
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
email TEXT UNIQUE
);
-- 创建索引
CREATE INDEX idx_users_email ON users(email);
多协议支持配置
ActorDB同时支持:
- Thrift协议:高性能二进制协议,推荐用于生产环境
- MySQL协议:兼容现有MySQL客户端和工具
🚨 故障排除与维护
常见问题解决
节点无法加入集群:
- 检查网络连通性
- 验证cookie配置是否一致
- 确认防火墙设置
- 检查节点名称格式
性能下降:
- 检查磁盘空间和I/O性能
- 调整fsync策略
- 优化查询超时设置
- 增加事务管理器数量
备份与恢复策略
数据备份:
# 停止ActorDB服务
./bin/actordb stop
# 备份数据目录
cp -r var/ backup/
# 重新启动服务
./bin/actordb start
集群恢复:
- 从备份恢复数据目录
- 启动所有节点
- 等待集群自动同步数据
- 验证数据一致性
监控指标检查
关键监控指标:
- 节点连接状态
- 内存使用情况
- 磁盘空间使用率
- 查询响应时间
- 复制延迟
📋 配置检查清单
部署前检查
- 系统资源充足(内存、磁盘、CPU)
- 网络配置正确
- 防火墙规则允许必要端口
- 存储目录权限正确
集群配置检查
- 所有节点cookie一致
- 节点名称格式正确
- 网络发现配置完整
- 复制参数设置合理
安全配置检查
- 访问控制配置适当
- 日志级别设置合理
- 备份策略已制定
- 监控告警已配置
🎯 总结
通过本ActorDB配置完全手册,您已经掌握了从单机部署到集群管理的完整配置流程。ActorDB的分布式架构和灵活的配置选项使其能够适应各种规模的应用需求。记住,良好的配置是系统稳定运行的基础,定期审查和优化配置可以显著提升系统性能和可靠性。
最佳实践建议:
- 从单机部署开始,逐步扩展到集群
- 根据实际负载调整性能参数
- 实施完整的监控和告警机制
- 定期进行备份和恢复测试
- 保持配置文档的更新和维护
ActorDB的强大功能结合合理的配置策略,将为您的应用提供可靠、高性能的数据存储解决方案。🚀
【免费下载链接】actordb ActorDB distributed SQL database 项目地址: https://gitcode.com/gh_mirrors/ac/actordb
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



