-
Notifications
You must be signed in to change notification settings - Fork 144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
当同步任务,服务名配置为ALL时,关闭同步任务,目标节点的同步心跳不会停止,只能关闭服务 #346
Comments
paderlol
added a commit
that referenced
this issue
May 15, 2024
* update port * fix #297 (#298) Co-authored-by: yangchun2 <yangchun2@joyy.com> * Revert "fix #297 (#298)" (#318) This reverts commit a9df169. * 0.4.9-pre (#325) * Feat/sync support2.x#mutiple thread sync02 (#304) * update port * Multithreading sync * solve conflict * imple SyncService * adapter deregister * optimization some code * fix deregister instance equals logic Co-authored-by: Oliver <wqdyxnbd@163.com> Co-authored-by: paderlol <huangmnlove@163.com> * Optimize the code for assigning tasks. (#320) * Develop (#321) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix #305 (#322) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code (#323) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic (#324) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic. --------- Co-authored-by: chenhao26 <35129699+chenhao26-nineteen@users.noreply.github.com> Co-authored-by: Oliver <wqdyxnbd@163.com> * fix:nacos 2 nacos 同步关闭后心跳没有停止问题 * fix:nacos 2 nacos 同步关闭后心跳没有停止问题 * fix:集群信息保存 cluster_level 为 null * fix: 1、注册时根据中心化逻辑判断同步,但是删除时逻辑不一致问题 2、如果停止同步nameservice为空问题 * 问题在于对destInstances列表的更新方式。在Java中,方法参数是按值传递的。这意味着当你传递一个对象到方法中时,实际上传递的是对象引用的副本。因此,如果你在方法内部改变了这个引用指向的对象(例如,将其指向一个新的对象),这个改变不会影响到原始的对象引用。 在你的代码中,destInstances = newDestInstance;这一行只是改变了destInstances引用在方法内部的指向,而不会改变方法外部传入的destInstances列表对象。这意味着,尽管你筛选出了需要反注册的实例,但这个改变不会反映到方法调用者那里。 --------- Co-authored-by: Oliver <wqdyxnbd@163.com> Co-authored-by: paderlol <huangmnlove@163.com> Co-authored-by: 杨春 <chun@kpromise.top> Co-authored-by: yangchun2 <yangchun2@joyy.com> Co-authored-by: chenhao26 <35129699+chenhao26-nineteen@users.noreply.github.com>
paderlol
added a commit
that referenced
this issue
May 18, 2024
* Feat/sync support2.x#mutiple thread sync02 (#304) * update port * Multithreading sync * solve conflict * imple SyncService * adapter deregister * optimization some code * fix deregister instance equals logic Co-authored-by: Oliver <wqdyxnbd@163.com> Co-authored-by: paderlol <huangmnlove@163.com> * Optimize the code for assigning tasks. (#320) * Develop (#321) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix #305 (#322) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code (#323) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic (#324) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic. * #346 #350:nacos 2 nacos 同步关闭后心跳没有停止问题 ,nacos-sync删除目标节点问题 (#347) * update port * fix #297 (#298) Co-authored-by: yangchun2 <yangchun2@joyy.com> * Revert "fix #297 (#298)" (#318) This reverts commit a9df169. * 0.4.9-pre (#325) * Feat/sync support2.x#mutiple thread sync02 (#304) * update port * Multithreading sync * solve conflict * imple SyncService * adapter deregister * optimization some code * fix deregister instance equals logic Co-authored-by: Oliver <wqdyxnbd@163.com> Co-authored-by: paderlol <huangmnlove@163.com> * Optimize the code for assigning tasks. (#320) * Develop (#321) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix #305 (#322) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code (#323) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic (#324) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic. --------- Co-authored-by: chenhao26 <35129699+chenhao26-nineteen@users.noreply.github.com> Co-authored-by: Oliver <wqdyxnbd@163.com> * fix:nacos 2 nacos 同步关闭后心跳没有停止问题 * fix:nacos 2 nacos 同步关闭后心跳没有停止问题 * fix:集群信息保存 cluster_level 为 null * fix: 1、注册时根据中心化逻辑判断同步,但是删除时逻辑不一致问题 2、如果停止同步nameservice为空问题 * 问题在于对destInstances列表的更新方式。在Java中,方法参数是按值传递的。这意味着当你传递一个对象到方法中时,实际上传递的是对象引用的副本。因此,如果你在方法内部改变了这个引用指向的对象(例如,将其指向一个新的对象),这个改变不会影响到原始的对象引用。 在你的代码中,destInstances = newDestInstance;这一行只是改变了destInstances引用在方法内部的指向,而不会改变方法外部传入的destInstances列表对象。这意味着,尽管你筛选出了需要反注册的实例,但这个改变不会反映到方法调用者那里。 --------- Co-authored-by: Oliver <wqdyxnbd@163.com> Co-authored-by: paderlol <huangmnlove@163.com> Co-authored-by: 杨春 <chun@kpromise.top> Co-authored-by: yangchun2 <yangchun2@joyy.com> Co-authored-by: chenhao26 <35129699+chenhao26-nineteen@users.noreply.github.com> * 0.5.0 (#351) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic. * 1. 重新设计全量 Nacos 同步 Nacos 2. 修复Nacos Instance equals无效导致出现无法注册成功问题 3. 升级Nacos Sync JDK/Spring Boot版本 4. 保底同步从改成并发同步 5. 增加部分注释 * Develop (#353) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic. * 1. 重新设计全量 Nacos 同步 Nacos 2. 修复Nacos Instance equals无效导致出现无法注册成功问题 3. 升级Nacos Sync JDK/Spring Boot版本 4. 保底同步从改成并发同步 5. 增加部分注释 --------- Co-authored-by: chenhao26 <35129699+chenhao26-nineteen@users.noreply.github.com> Co-authored-by: Oliver <wqdyxnbd@163.com> Co-authored-by: 龙竹 <34528665+dragonTalon@users.noreply.github.com> Co-authored-by: 杨春 <chun@kpromise.top> Co-authored-by: yangchun2 <yangchun2@joyy.com>
merged |
paderlol
added a commit
that referenced
this issue
Jun 10, 2024
* Feat/sync support2.x#mutiple thread sync02 (#304) * update port * Multithreading sync * solve conflict * imple SyncService * adapter deregister * optimization some code * fix deregister instance equals logic Co-authored-by: Oliver <wqdyxnbd@163.com> Co-authored-by: paderlol <huangmnlove@163.com> * Optimize the code for assigning tasks. (#320) * Develop (#321) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix #305 (#322) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code (#323) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic (#324) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic. * #346 #350:nacos 2 nacos 同步关闭后心跳没有停止问题 ,nacos-sync删除目标节点问题 (#347) * update port * fix #297 (#298) Co-authored-by: yangchun2 <yangchun2@joyy.com> * Revert "fix #297 (#298)" (#318) This reverts commit a9df169. * 0.4.9-pre (#325) * Feat/sync support2.x#mutiple thread sync02 (#304) * update port * Multithreading sync * solve conflict * imple SyncService * adapter deregister * optimization some code * fix deregister instance equals logic Co-authored-by: Oliver <wqdyxnbd@163.com> Co-authored-by: paderlol <huangmnlove@163.com> * Optimize the code for assigning tasks. (#320) * Develop (#321) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix #305 (#322) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code (#323) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic (#324) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic. --------- Co-authored-by: chenhao26 <35129699+chenhao26-nineteen@users.noreply.github.com> Co-authored-by: Oliver <wqdyxnbd@163.com> * fix:nacos 2 nacos 同步关闭后心跳没有停止问题 * fix:nacos 2 nacos 同步关闭后心跳没有停止问题 * fix:集群信息保存 cluster_level 为 null * fix: 1、注册时根据中心化逻辑判断同步,但是删除时逻辑不一致问题 2、如果停止同步nameservice为空问题 * 问题在于对destInstances列表的更新方式。在Java中,方法参数是按值传递的。这意味着当你传递一个对象到方法中时,实际上传递的是对象引用的副本。因此,如果你在方法内部改变了这个引用指向的对象(例如,将其指向一个新的对象),这个改变不会影响到原始的对象引用。 在你的代码中,destInstances = newDestInstance;这一行只是改变了destInstances引用在方法内部的指向,而不会改变方法外部传入的destInstances列表对象。这意味着,尽管你筛选出了需要反注册的实例,但这个改变不会反映到方法调用者那里。 --------- Co-authored-by: Oliver <wqdyxnbd@163.com> Co-authored-by: paderlol <huangmnlove@163.com> Co-authored-by: 杨春 <chun@kpromise.top> Co-authored-by: yangchun2 <yangchun2@joyy.com> Co-authored-by: chenhao26 <35129699+chenhao26-nineteen@users.noreply.github.com> * 0.5.0 (#351) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic. * 1. 重新设计全量 Nacos 同步 Nacos 2. 修复Nacos Instance equals无效导致出现无法注册成功问题 3. 升级Nacos Sync JDK/Spring Boot版本 4. 保底同步从改成并发同步 5. 增加部分注释 * Develop (#353) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic. * 1. 重新设计全量 Nacos 同步 Nacos 2. 修复Nacos Instance equals无效导致出现无法注册成功问题 3. 升级Nacos Sync JDK/Spring Boot版本 4. 保底同步从改成并发同步 5. 增加部分注释 * 1. 优化部分代码 (#354) * Optimize the code for assigning tasks. * Adds prefix to the input string if it doesn't already have it.#308 * Fix .#305 * Fix cyclic dependency code. * Refactoring the Nacos Sync to Consul Logic. * 1. 重新设计全量 Nacos 同步 Nacos 2. 修复Nacos Instance equals无效导致出现无法注册成功问题 3. 升级Nacos Sync JDK/Spring Boot版本 4. 保底同步从改成并发同步 5. 增加部分注释 * 1. 优化部分代码 --------- Co-authored-by: chenhao26 <35129699+chenhao26-nineteen@users.noreply.github.com> Co-authored-by: Oliver <wqdyxnbd@163.com> Co-authored-by: 龙竹 <34528665+dragonTalon@users.noreply.github.com> Co-authored-by: 杨春 <chun@kpromise.top> Co-authored-by: yangchun2 <yangchun2@joyy.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
版本:0.4.9
同步任务:nacos(1.4)->nacos(2.1)
当配置ALL时,serviceName的同步是通过com.alibaba.nacossync.timer.CheckRunningStatusAllThread类进行同步的,存放在
com.alibaba.nacossync.extension.impl.NacosSyncToNacosServiceImpl#serviceClient 格式是 taskId+serviceName(具体的serviceName)
同步任务
com.alibaba.nacossync.timer.FastSyncHelper#syncByIndex
copy一个临时实例的task任务
但是删除的逻辑是根据数据库中配置的task类进行delete,删除的key是taskId:ALL这样导致所有通过CheckRunningStatusAllThread逻辑生成的临时task类,产生的心跳无法stop,导致这些实例在同步任务关闭之后还是存活在目标nacos中
com.alibaba.nacossync.extension.impl.NacosSyncToNacosServiceImpl#popNamingService
nacos-sync是不是缺少一个和CheckRunningStatusAllThread对应的delete任务
The text was updated successfully, but these errors were encountered: