Răsfoiți Sursa

Merge pull request #621 from spccold/master

close zkclientx if necessary when stop canal and fix CanalInstanceWithManager#doInitEventParser bug
agapple 7 ani în urmă
părinte
comite
5c2ed38d2f

+ 4 - 0
deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalController.java

@@ -454,6 +454,10 @@ public class CanalController {
         // 释放canal的工作节点
         // 释放canal的工作节点
         releaseCid(ZookeeperPathUtils.getCanalClusterNode(ip + ":" + port));
         releaseCid(ZookeeperPathUtils.getCanalClusterNode(ip + ":" + port));
         logger.info("## stop the canal server[{}:{}]", ip, port);
         logger.info("## stop the canal server[{}:{}]", ip, port);
+        
+        if (zkclientx != null) {
+            zkclientx.close();
+        }
     }
     }
 
 
     private void initCid(String path) {
     private void initCid(String path) {

+ 1 - 1
instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/CanalInstanceWithManager.java

@@ -263,7 +263,7 @@ public class CanalInstanceWithManager extends AbstractCanalInstance {
                 mysqlEventParser.setMasterPosition(masterPosition);
                 mysqlEventParser.setMasterPosition(masterPosition);
 
 
                 if (parameters.getPositions().size() > 1) {
                 if (parameters.getPositions().size() > 1) {
-                    EntryPosition standbyPosition = JsonUtils.unmarshalFromString(parameters.getPositions().get(0),
+                    EntryPosition standbyPosition = JsonUtils.unmarshalFromString(parameters.getPositions().get(1),
                         EntryPosition.class);
                         EntryPosition.class);
                     mysqlEventParser.setStandbyPosition(standbyPosition);
                     mysqlEventParser.setStandbyPosition(standbyPosition);
                 }
                 }