.net集群--配置中心方案

最近失业了,在家闲着没事干,就想着找点事做。研究这个也是因为上家公司的系统做了负载均衡,后置服务器有4台,每次发版之后呢都要远程去服务器上把配置改一遍,感觉很傻逼,也很不靠谱。趁这次在家闲着,就去网上搜了一遍,发现还真有大牛写了这种系统,是基于百度的DisConf开发的一个DisConf.net,结合zookeeper使用的,基本功能都能实现,完美解决了.net项目集群配置管理。

项目地址:https://github.com/qkbao/Disconf.Net

关于zookeeper的安装和配置,自行去搜索,很容易的。

下载下来,目录结构是:


数据库是Mysql的,找到Disconf.net 服务端下的数据库连接字符串中的数据库名称,在数据库中新建数据库,首先执行 initdisconfig.sql 建表结构,然后执行 initData.sql 执行用户和角色的初始化数据

接下来就是编译代码,部署网站了,这个代码有个坑,我这里截图说明一下,初始化zookeeper的时候需要改一下,节点需要依次创建:


源代码里面,是直接用 zkPath 代替了截图里面的xpath, 例如:/data/dev/item/34343ddfdfd, 这么创建会报NoNodeException,就是因为不能这么创建,只能一个个节点去创建。这里推荐一个 zookeeper图形管理工具:ZooInspector  自己去网上搜一下,怎么运行都有,有了这个工具便于调试,可以直观的看到各个节点之间的关系。

在.net项目中的使用,其实可以通过DisConf.net-client 项目中的 例子基本可以搞定了,但是我觉得还是有必要说一下,不然看着一脸懵逼,我觉得有必要一些参数说明一下

  图1


图二


图一中标红的参数,对应图二中配置列表中的名称,代码是长连接的,实时更新(需要监控那些配置的更新,可以是配置文件,也可以是键值对

配置文件说明:

图3


第一个是系统名称:这个很好理解,不多解释,配置平台进去的第一个页面就是系统列表

第二个是环境:是开发环境还是测试环境,图二截图中已经标注了

第三个是版本:需要配置中心中存在的,图二中标注了

第四个是客户端名称:这个也很好理解,就是服务器的名称,便于自己管理,你也可以不填,不填的话会获取机器名称

第五个是下载的临时文件夹:不多说

第六个是配置文件所在的目录:这个需要说一下,配置文件首先是将最新配置下载到临时文件夹,然后再复制到这个文件夹的。

webApiHost:就是配置中心的地址

接下来就是在web项目中如何使用了

图四

这是代码结构,第一个红框是注册长连接以及初始化配置的代码,第二红框是系统需要用到的配置(文件名和图二中的模板名称一样),在global.asax 的 Application_Start() 方法中调用DiscofigRules.cs中的注册方法启动监听即可。

图5


注册节点,将配置文件做成单独的文件,便于更新,文件中的格式参考 Disconf.Net-client中的示例。


到这里基本上已经可以了,我也只是记录一下而已,因为自己踩过坑,所以觉得有必要记录。不是什么技术大牛,希望对有需要的人有帮助,有需要的人如果看了这边文章还是不会用呢,欢迎留言,就是不能喷人。

没有更多推荐了,返回首页