Merge branch 'develop' into registry-nacos

This commit is contained in:
tanghc
2019-07-05 09:26:45 +08:00
3 changed files with 14 additions and 14 deletions

View File

@@ -22,7 +22,6 @@ import org.springframework.util.Assert;
import java.io.Closeable;
import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;
import static com.gitee.sop.adminserver.bean.SopAdminConstants.SOP_MSG_CHANNEL_PATH;
@@ -283,11 +282,11 @@ public class ZookeeperContext {
* 监听一个节点
*
* @param path
* @param onChange 节点修改后触发
* @param listenCallback 回调
* @return 返回path
* @throws Exception
*/
public static void listenTempPath(String path, Consumer<String> onChange) throws Exception {
public static void listenTempPath(String path, ListenCallback listenCallback) throws Exception {
String initData = "{}";
CuratorFramework client = createClient();
client.create()
@@ -302,8 +301,8 @@ public class ZookeeperContext {
public void nodeChanged() throws Exception {
byte[] nodeData = cache.getCurrentData().getData();
String data = new String(nodeData);
if (!initData.equals(data)) {
onChange.accept(data);
if (StringUtils.isNotBlank(data) && !initData.equals(data)) {
listenCallback.onError(data);
new Thread(new ZKClose(cache, client)).start();
}
}
@@ -311,6 +310,10 @@ public class ZookeeperContext {
cache.start();
}
public interface ListenCallback {
void onError(String errorMsg);
}
static class ZKClose implements Runnable {
Closeable[] closes;

View File

@@ -96,15 +96,12 @@ public class RoutePermissionService {
/**
* 推送所有路由权限到zookeeper
*/
public synchronized void sendRoutePermissionReloadMsg(RoutePermissionParam oldRoutePermission) throws Exception {
public void sendRoutePermissionReloadMsg(RoutePermissionParam oldRoutePermission) throws Exception {
String listenPath = SopAdminConstants.RELOAD_ROUTE_PERMISSION_PATH + "/" + System.currentTimeMillis();
ZookeeperContext.listenTempPath(listenPath, code -> {
// 0成功
if (!"0".equals(code)) {
log.error("推送所有路由权限到zookeeper失败进行回滚msg: {}oldRoutePermission{}", code, JSON.toJSONString(oldRoutePermission));
// 回滚
this.updateRoutePermission(oldRoutePermission);
}
ZookeeperContext.listenTempPath(listenPath, errorMsg -> {
log.error("推送所有路由权限到zookeeper失败进行回滚errorMsg: {}oldRoutePermission{}", errorMsg, JSON.toJSONString(oldRoutePermission));
// 回滚
updateRoutePermission(oldRoutePermission);
});
IsvRoutePermission isvRoutePermission = new IsvRoutePermission();
isvRoutePermission.setListenPath(listenPath);