public void Init() { _logger.LogInformation($"开始监听zk<jodis/{_zksetting.zkProxyDir}>节点"); zkhelper = new ZooKeeperHelper(_zksetting.zkAddr, _zksetting.zkProxyDir, _zksetting.zkSessionTimeout, (nodes) => { _logger.LogInformation($"新增节点"); foreach (var item in nodes) { _logger.LogInformation($"新增节点:{item.Addr}"); } Task.Run(async() => await CheckCCAsync()); }, (nodes) => { _logger.LogInformation($"删除节点"); foreach (var item in nodes) { _logger.LogInformation($"删除节点:{item.Addr}"); } Task.Run(async() => await CheckCCAsync()); }); }
public static Task <bool> DeleteAppSettingByIdAsync(int id) { return(Task.Run(() => { using (var db = new ConfigCenterConnection()) { var appSetting = db.AppSetting.SingleOrDefault(x => x.Id == id); db.AppSetting.Remove(appSetting); db.SaveChanges(); var app = db.App.FirstOrDefault(x => x.Id == appSetting.AppId); if (app != null) { app.Version = DateTime.Now.ToString("yyyyMMddHHmmss"); db.Entry(app).State = EntityState.Modified; db.SaveChanges(); //更新zookeeper的值 var path = ZooKeeperHelper.ZooKeeperRootNode + "/" + app.AppId; if (!ZooKeeperHelper.Exists(path)) { ZooKeeperHelper.Create(path, null); } ZooKeeperHelper.SetData(path, app.Version, -1); } return true; } })); }
public static Task SaveAppSettingAsync(AppSettingDto appSettingDto) { return(Task.Run(() => { using (var db = new ConfigCenterConnection()) { var appSetting = Mapper.Map <AppSettingDto, AppSetting>(appSettingDto); db.AppSetting.Add(appSetting); db.SaveChanges(); var app = db.App.FirstOrDefault(x => x.Id == appSettingDto.AppId); if (app != null) { app.Version = DateTime.Now.ToString("yyyyMMddHHmmss"); db.Entry(app).State = EntityState.Modified; db.SaveChanges(); //更新zookeeper的值 var path = ZooKeeperHelper.ZooKeeperRootNode + "/" + app.AppId; if (!ZooKeeperHelper.Exists(path)) { ZooKeeperHelper.Create(path, null); } ZooKeeperHelper.SetData(path, app.Version, -1); } } })); }
protected void Application_Start() { ObjectMapping.Init(); if (!ZooKeeperHelper.Exists(ZooKeeperHelper.ZooKeeperRootNode)) { ZooKeeperHelper.Create(ZooKeeperHelper.ZooKeeperRootNode, null); } new AppHost().Init(); }
public void GetZKJodis() { var zkhelper = new ZooKeeperHelper(log, "192.168.4.79:2181", "codis-mango"); var result = zkhelper._zk.client.GetChildrenAsync("/jodis"); result.Wait(); var resData = result.Result.ToList(); Assert.Contains("codis-mango", resData); }
public void TestMethod1() { zkhelper = new ZooKeeperHelper(zkAddr, zkProxyDir, zkSessionTimeout, (nodes) => { foreach (var item in nodes) { Console.WriteLine($"新增节点:{item.Addr}"); } }, (nodes) => { foreach (var item in nodes) { Console.WriteLine($"删除节点:{item.Addr}"); } }); var pools = zkhelper.pools; }
public static void SaveAppSetting(AppSettingDto appSettingDto) { var appSetting = Mapper.Map <AppSettingDto, AppSetting>(appSettingDto); appSetting.Save(); var app = App.SingleOrDefault(appSettingDto.AppId); if (app != null) { app.Version = DateTime.Now.ToString("yyyyMMddHHmmss"); app.Save(); //更新zookeeper的值 var path = ZooKeeperHelper.ZooKeeperRootNode + "/" + app.AppId; if (!ZooKeeperHelper.Exists(path)) { ZooKeeperHelper.Create(path, null); } ZooKeeperHelper.SetData(path, app.Version, -1); } }
/// <summary> /// 构建一个监听zk变化自动更新的连接池 /// </summary> /// <returns></returns> public RedisPool Build() { #region zk配置获取及建立监听 validate(); if (zkhelper != null) { zkhelper.Dispose(); } zkhelper = new ZooKeeperHelper(zkAddr, zkProxyDir, zkSessionTimeout, (nodes) => { CreateManager(); }, (nodes) => { CreateManager(); }); #endregion zk配置获取及建立监听 CreateManager(); return(this); }