redis-replicator使用的一点点心得

目录

技术难点一:

技术难点二:


更多技术交流:https://github.com/singgel

源码地址:http://git.snowballfinance.com/hekuangsheng/redis-replicator

技术难点一:

java伪装的slave从master获取的数据是redis protocol下的二进制数据,分为

1.RDB数据

2.PSYNC增量数据

Jedis单点有socket的预留接口方法sendCommand,问题,JedisCluster没有这个接口

解决:

1.将二进制数据直接用过CRC16获取到slot

2.根据slot对应的node

3.根据node在获取到Jedis的单点Client

以上同时要兼顾到整个cluster的连接池,不能反复的去创建connection

技术难点二:

在做压测的时候,1WOPS时出现slave,只接收了一部分数据,然后掉线

1.java的slave在dump到本地之后的数据,even处理阻塞

2.master的slave的alive时间设置太短

解决:

replicator参数里面有一个选线(Replicator)r.getConfiguration().setDiscardRdbEvent(true);

设置后rdb文件的解析过程将被忽略,更新offset标志位拉取同步最新的command

猜你喜欢

转载自blog.csdn.net/singgel/article/details/94597069