TraceNature / redissyncer-server

RedisSyncer是一个多任务的redis数据同步工具,可灵活的满足Redis间的数据同步、迁移需求; redissyncer is a redis synchronization tool, used in redis single instance and cluster synchronization
https://github.com/TraceNature/redissyncer-server
Apache License 2.0
639 stars 104 forks source link

只同步了一小部分,每次都卡在这里 #85

Closed mynicolas closed 1 year ago

mynicolas commented 2 years ago

异常原因【被抛弃key数量到达阈值[1],exception reason[MOVED 5714 10.132.188.43:6371]】

mynicolas commented 2 years ago

2022-09-28 02:40:15.435|[ERROR ]|[8B2C54D0277E43F7AE58A83686F01802: threadPoolTaskExecutor-12] -> JDJedisPipeLineClient#commitCompensator:1466 | Command[RESTORE],KEY[user-roles:418927]进入补偿机制:[{"@type":"syncer.syncerjedis.exceptions.JedisMovedDataException","localizedMessage":"MOVED 9423 10.132.188.43:6371","message":"MOVED 9423 10.132.188.43:6371","slot":9423,"stackTrace":[{"className":"syncer.syncerjedis.Protocol","fileName":"Protocol.java","lineNumber":114,"methodName":"processError","nativeMethod":false},{"className":"syncer.syncerjedis.Protocol","fileName":"Protocol.java","lineNumber":160,"methodName":"process","nativeMethod":false},{"className":"syncer.syncerjedis.Protocol","fileName":"Protocol.java","lineNumber":214,"methodName":"read","nativeMethod":false},{"className":"syncer.syncerjedis.Connection","fileName":"Connection.java","lineNumber":319,"methodName":"readProtocolWithCheckingBroken","nativeMethod":false},{"className":"syncer.syncerjedis.Connection","fileName":"Connection.java","lineNumber":331,"methodName":"getMany","nativeMethod":false},{"className":"syncer.syncerjedis.Pipeline","fileName":"Pipeline.java","lineNumber":113,"methodName":"syncAndReturnAll","nativeMethod":false},{"className":"syncer.syncerservice.util.JDRedisClient.JDJedisPipeLineClient","fileName":"JDJedisPipeLineClient.java","lineNumber":958,"methodName":"addCommandNum","nativeMethod":false},{"className":"syncer.syncerservice.util.JDRedisClient.JDJedisPipeLineClient","fileName":"JDJedisPipeLineClient.java","lineNumber":732,"methodName":"restoreReplace","nativeMethod":false},{"className":"syncer.syncerservice.filter.KeyValueRdbSyncEventFilter","fileName":"KeyValueRdbSyncEventFilter.java","lineNumber":212,"methodName":"run","nativeMethod":false},{"className":"syncer.syncerservice.filter.KeyValueEventDBMappingFilter","fileName":"KeyValueEventDBMappingFilter.java","lineNumber":137,"methodName":"toNext","nativeMethod":false},{"className":"syncer.syncerservice.filter.KeyValueEventDBMappingFilter","fileName":"KeyValueEventDBMappingFilter.java","lineNumber":128,"methodName":"run","nativeMethod":false},{"className":"syncer.syncerservice.filter.KeyValueDataAnalysisFilter","fileName":"KeyValueDataAnalysisFilter.java","lineNumber":165,"methodName":"toNext","nativeMethod":false},{"className":"syncer.syncerservice.filter.KeyValueDataAnalysisFilter","fileName":"KeyValueDataAnalysisFilter.java","lineNumber":150,"methodName":"run","nativeMethod":false},{"className":"syncer.syncerservice.filter.KeyValueTimeCalculationFilter","fileName":"KeyValueTimeCalculationFilter.java","lineNumber":75,"methodName":"toNext","nativeMethod":false},{"className":"syncer.syncerservice.filter.KeyValueTimeCalculationFilter","fileName":"KeyValueTimeCalculationFilter.java","lineNumber":66,"methodName":"run","nativeMethod":false},{"className":"syncer.syncerservice.filter.KeyValueRunFilterChain","fileName":"KeyValueRunFilterChain.java","lineNumber":42,"methodName":"run","nativeMethod":false},{"className":"syncer.syncerservice.sync.SendCommandWithOutQueue","fileName":"SendCommandWithOutQueue.java","lineNumber":62,"methodName":"run","nativeMethod":false},{"className":"syncer.syncerservice.sync.RedisDataSyncTransmissionTask$1","fileName":"RedisDataSyncTransmissionTask.java","lineNumber":184,"methodName":"onEvent","nativeMethod":false},{"className":"syncer.syncerplusredis.extend.replicator.listener.ValueDumpIterableEventListener","fileName":"ValueDumpIterableEventListener.java","lineNumber":153,"methodName":"onEvent","nativeMethod":false},{"className":"syncer.syncerplusredis.replicator.AbstractReplicatorListener","fileName":"AbstractReplicatorListener.java","lineNumber":92,"methodName":"doEventListener","nativeMethod":false},{"className":"syncer.syncerplusredis.replicator.AbstractReplicator","fileName":"AbstractReplicator.java","lineNumber":105,"methodName":"submitEvent","nativeMethod":false},{"className":"syncer.syncerplusredis.rdb.RdbParser","fileName":"RdbParser.java","lineNumber":226,"methodName":"parse","nativeMethod":false},{"className":"syncer.syncerplusredis.RedisSocketReplicator$1","fileName":"RedisSocketReplicator.java","lineNumber":205,"methodName":"handle","nativeMethod":false},{"className":"syncer.syncerplusredis.cmd.ReplyParser","fileName":"ReplyParser.java","lineNumber":101,"methodName":"parse","nativeMethod":false},{"className":"syncer.syncerplusredis.RedisSocketReplicator","fileName":"RedisSocketReplicator.java","lineNumber":377,"methodName":"reply","nativeMethod":false},{"className":"syncer.syncerplusredis.RedisSocketReplicator","fileName":"RedisSocketReplicator.java","lineNumber":192,"methodName":"parseDump","nativeMethod":false},{"className":"syncer.syncerplusredis.RedisSocketReplicator","fileName":"RedisSocketReplicator.java","lineNumber":164,"methodName":"trySync","nativeMethod":false},{"className":"syncer.syncerplusredis.RedisSocketReplicator$RedisSocketReplicatorRetrier","fileName":"RedisSocketReplicator.java","lineNumber":485,"methodName":"open","nativeMethod":false},{"className":"syncer.syncerplusredis.replicator.AbstractReplicatorRetrier","fileName":"AbstractReplicatorRetrier.java","lineNumber":103,"methodName":"retry","nativeMethod":false},{"className":"syncer.syncerplusredis.RedisSocketReplicator","fileName":"RedisSocketReplicator.java","lineNumber":135,"methodName":"open","nativeMethod":false},{"className":"syncer.syncerplusredis.replicator.RedisReplicator","fileName":"RedisReplicator.java","lineNumber":316,"methodName":"open","nativeMethod":false},{"className":"syncer.syncerservice.sync.RedisDataSyncTransmissionTask","fileName":"RedisDataSyncTransmissionTask.java","lineNumber":194,"methodName":"run","nativeMethod":false},{"className":"java.util.concurrent.ThreadPoolExecutor","fileName":"ThreadPoolExecutor.java","lineNumber":1149,"methodName":"runWorker","nativeMethod":false},{"className":"java.util.concurrent.ThreadPoolExecutor$Worker","fileName":"ThreadPoolExecutor.java","lineNumber":624,"methodName":"run","nativeMethod":false},{"className":"java.lang.Thread","fileName":"Thread.java","lineNumber":748,"methodName":"run","nativeMethod":false}],"targetNode":{"host":"10.132.188.43","port":6371}}] : RESPONSE[syncer.syncerjedis.exceptions.JedisMovedDataException: MOVED 9423 10.132.188.43:6371]->String[]

pingxingshikong commented 2 years ago

你是cluster集群吧,用cluster模式,不要用单机redis模式

pingxingshikong commented 2 years ago

目标为单机的时候是不支持 MOVED命令的