-
Notifications
You must be signed in to change notification settings - Fork 1.2k
pika_hub配置使用
server-id:需要互相同步的pika实例,每个实例配唯一一个server id,比如1,2,3...
floyd-servers : raft集群所有节点的ip:port信息,节点见以逗号分隔
例:XX1.XX1.XX1.XX1:9211,XX2.XX2.XX2.XX2:9211,XX3.XX3.XX3.XX3:9211
floyd-local-ip : raft集群对应本节点的ip信息
例:XX1.XX1.XX1.XX1
floyd-local-port : raft集群对应本节点的port信息
例:9211
floyd-path : raft集群对应本节点的工作目录
例:./floyd
sdk-port : pika_hub管理端口(端口号必须与上面配置的floyd端口不一样)
例:6868
conf-path : pika_hub配置文件路径
例:./conf/pika_hub.conf
log-path : pika_hub的log路径
例:./log
max-log-file-size : pika_hub的log可按大小自动切分,单位字节
log-file-time-to-roll : pika_hub的log可按时间自动切分,单位秒
info-log-level : pika_hub的log级别,1->Info; 2->Warn; 3->Error; 4->Fatal
pika-servers : 所有需要进行跨机房同步的pika实例的ip:port:serverid:password信息,以逗号分隔
例:XX1.XX1.XX1.XX1:9221:1:abc,XX2.XX2.XX2.XX2:9221:2:def,XX3.XX3.XX3,XX3:9221:3:ghi
daemonize: 以daemon形式运行
例:yes
pidfile: 当以daemon形式运行是,配置生成pid文件的路径及文件名
例:./pika_hub.pid
binlog-offset-absolute-consistency: 当pika_hub发送给pika的同步偏移量在pika找不到时,如果此项配置yes,则pika_hub直接报错并放弃重连,如果配置no,则pika会使用当前存在binlog的合适偏移量开始同步【故障兼容性更好】
requirepass: pika_hub管理端口密码
配置好pika和pika_hub后,启动他们即可,稍作等待,互相同步就会建立
可以使用redis-cli连上任意一个pika_hub实例操作如下命令
- info:查看状态信息,注:pika_hub的primary节点和second节点执行info命令后显示结果有不同
- ping
- auth:密码验证
- transfer: 见下
- copy:见下
如果pika_hub集群中挂掉少于一半节点数据节点,pika_hub会自动恢复服务,当多余一半节点故障,则pika_hub停止服务
跨机房同步的pika实例可在其后挂若干slave,当master实例挂掉并不可恢复时,首先将其slave实例执行slaveof no one断开与故障实例的主从连接,然后确认slave和master实例配置使用相同的server_id,接着在pika_hub端,按照先primary节点后second节点的顺序[注:推荐顺序,不强制要求],依次执行
transfer server_id new_pika_ip new_pika_port
例:transfer 1 XX1.XX1.XX1.XX1 9221
执行后,pika_hub的primary节点会将对将server_id 1的pika转移XX1.XX1.XX1.XX1:9221上
注: transfer命令只是在线转移pika故障实例,并没有持久化到配置文件的pika-servers中,执行后,需要人工修改所有pika_hub的配置文件来确保配置持久化
pika_hub支持新增pika实例同步,具体操作步骤如下:
假设pika_hub之前已经于A,B,C三个pika实例建立同步关系,此时需要新增D实例
-
将D作为A,B,C其中一个的slave
-
确认D与其master同步点十分接近时在pika_hub端,按照先primary节点后second节点的顺序[注:推荐顺序,不强制要求],依次执行
copy exist_pika_server_id new_pika_server_id new_pika_ip new_pika_port
例:copy 1 2 XX2.XX2.XX2.XX2 9221
执行后, XX2.XX2.XX2.XX2:9221以server_id 2的身份加入pika_hub同步
注: copy命令只是在线添加pika实例,并没有持久化到配置文件的pika-servers中,执行后,需要人工修改所有pika_hub的配置文件来确保配置持久化
- 安装使用
- 支持的语言和客户端
- 当前支持的Redis接口以及兼容情况
- 配置文件说明
- 数据目录说明
- info信息说明
- 部分管理指令说明
- 差异化命令
- Pika Sharding Tutorials
- Pika订阅
- 配合sentinel(哨兵)实现pika自动容灾
- 如何升级到Pika3.0
- 如何升级到Pika3.1或3.2
- Pika多库版命令、参数变化参考
- Pika分片版本命令
- 副本一致性使用说明
- Pika内存使用
- Pika最佳实践
- 整体架构
- 线程模型
- 全同步
- 增量同步
- 副本一致性
- 快照式备份
- 锁的应用
- nemo存储引擎数据格式
- blackwidow存储引擎数据格式
- Pika源码学习--pika的通信和线程模型
- Pika源码学习--pika的PubSub机制
- Pika源码学习--pika的命令执行框架
- Pika源码学习--pika和rocksdb的对接
- pika-NoSQL原理概述
- pika在codis中的探索
- Pika 笔记
- pika 主从同步原理