# ultraman **Repository Path**: hsogoo/ultraman ## Basic Information - **Project Name**: ultraman - **Description**: 配置中心 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-09-11 - **Last Updated**: 2024-07-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ultraman #### 项目介绍 配置中心 #### 软件架构 本项目参考了携程的apollo,做了一些改动,目的在于学习apollo框架本身,并且改造成适合自己需求的配置中心,使用起来更加方便。 - GLOBAL全局配置项,适用于所有环境,所有应用(如公司名称等配置项)。 - ENV整个环境env级别配置(整个test1环境下所有的应用公用变量,如中间件配置mq,redis,zk等配置)。 - APP不共享的配置,为应用私有的配置,在指定env和指定app下有效,这里的配置项可以通过env和app来进行隔离。 #### 安装教程 1. zookeeper需求3.5以上版本(curator的版本限制)。作为配置服务的注册中心使用,并且能即时同时client端配置服务列表的变更,以及配置项的变更。 2. config-server为springboot项目,为配置服务器,用来进行配置的增删改查等操作,并且提供最新配置的查询,供client端拉取最新的配置项。 3. config-client为jar包,需要接入该配置中心的应用,引入该jar包即可使用,建议springboot项目。 #### 使用说明 ![输入图片说明](https://images.gitee.com/uploads/images/2018/0925/134519_7c0503f2_1421983.png "ultraman-config.png") - 1、 **启动zk** - 2、 **启动config-server** - 3、 **启动springboot demo** - 4、 **访问springboot demo项目的http://localhost:9959/demo/test** - 输出: - 2018-09-25 12:02:36.327 [http-nio-9959-exec-1] INFO com.hsogoo.ultraman.controller.DemoController - connectTimeout=1000 - 2018-09-25 12:02:36.327 [http-nio-9959-exec-1] INFO com.hsogoo.ultraman.controller.DemoController - readTimeout=5000 - 2018-09-25 12:02:36.327 [http-nio-9959-exec-1] INFO com.hsogoo.ultraman.controller.DemoController - currentTime=1537848145526 - 2018-09-25 12:02:36.327 [http-nio-9959-exec-1] INFO com.hsogoo.ultraman.controller.DemoController - zkUrl=127.0.0.1 - 2018-09-25 12:02:36.327 [http-nio-9959-exec-1] INFO com.hsogoo.ultraman.controller.DemoController - redisUrl=10.1.1.3 - 2018-09-25 12:02:36.327 [http-nio-9959-exec-1] INFO com.hsogoo.ultraman.controller.DemoController - webSite=www.baidu.com - 2018-09-25 12:02:36.327 [http-nio-9959-exec-1] INFO com.hsogoo.ultraman.controller.DemoController - companyName=companyName - 5、 **访问config-server项目的localhost:8848/configManage/publishConfig/dev/ultraman-client-demo/app进行配置变更,这里只是做了简单的mock唯一变化的值为currentTime取的是系统当前时间的long值。** - 控制台输出: - 2018-09-25 12:02:45.021 [Curator-TreeCache-2] INFO com.hsogoo.ultraman.monitor.ZkClient - Tree Node change... - 2018-09-25 12:02:45.021 [Curator-TreeCache-2] INFO com.hsogoo.ultraman.monitor.ZkClient - Tree Node changed: app - 2018-09-25 12:02:45.021 [Curator-TreeCache-2] INFO com.hsogoo.ultraman.monitor.ZkClient - Tree path : /ultraman_conf/config_publish/dev/ultraman-client-demo/app - 2018-09-25 12:02:45.021 [Curator-TreeCache-2] INFO com.hsogoo.ultraman.monitor.ConfigChangeMonitor - 从zk监听到app配置发生变化。。。 - 2018-09-25 12:02:45.021 [Curator-TreeCache-2] INFO com.hsogoo.ultraman.utils.ConfigMetaUtil - Environment is set to [dev] by JVM system property 'env'. - 2018-09-25 12:02:45.022 [Curator-TreeCache-2] INFO c.h.ultraman.repository.RemoteConfigRepository - 从远程配置服务器获取app的配置。。。 - 2018-09-25 12:02:45.059 [Curator-TreeCache-2] INFO c.h.ultraman.repository.LocalFileConfigRepository - app远程配置发生变更,更新本地配置。。。 - 2018-09-25 12:02:45.060 [Curator-TreeCache-2] INFO com.hsogoo.ultraman.utils.ConfigMetaUtil - Environment is set to [dev] by JVM system property 'env'. - 2018-09-25 12:02:45.061 [Curator-TreeCache-2] INFO com.hsogoo.ultraman.spi.DefaultConfig - app配置仓库的配置文件发生变化时,变更内存中的配置 - 2018-09-25 12:02:45.061 [Curator-TreeCache-2] INFO com.hsogoo.ultraman.spi.DefaultConfig - 计算配置变化的项。。。 - 2018-09-25 12:02:45.068 [Curator-TreeCache-2] INFO com.hsogoo.ultraman.spi.DefaultConfig - 发生配更的配置项:[{currentTime=ConfigChange(namespace=app, propertyName=currentTime, oldValue=1537848145526, newValue=1537848165028, changeType=MODIFIED)}] - 2018-09-25 12:02:45.070 [Curator-TreeCache-2] INFO c.h.u.listener.AutoRefreshConfigChangeListener - Config上添加的AutoRefreshConfigChangeListener.onChange===[ConfigChangeEvent(namespace=app, changes={currentTime=ConfigChange(namespace=app, propertyName=currentTime, oldValue=1537848145526, newValue=1537848165028, changeType=MODIFIED)})] - 2018-09-25 12:02:45.070 [Curator-TreeCache-2] INFO c.h.u.listener.AutoRefreshConfigChangeListener - 这里做bean属性的动态刷新。。。 - 2018-09-25 12:02:45.070 [Curator-TreeCache-2] INFO c.h.u.listener.AutoRefreshConfigChangeListener - 要刷新的key=[currentTime] - 2018-09-25 12:02:45.070 [Curator-TreeCache-2] INFO c.h.u.listener.AutoRefreshConfigChangeListener - 要刷新的旧的value=[1537848145526] - 2018-09-25 12:02:45.070 [Curator-TreeCache-2] INFO c.h.u.listener.AutoRefreshConfigChangeListener - 要刷新的新的value=[1537848165028] - 6、再次访问springboot demo项目的http://localhost:9959/demo/test - 输出 - 2018-09-25 12:03:31.698 [http-nio-9959-exec-4] INFO com.hsogoo.ultraman.controller.DemoController - connectTimeout=1000 - 2018-09-25 12:03:31.698 [http-nio-9959-exec-4] INFO com.hsogoo.ultraman.controller.DemoController - readTimeout=5000 - 2018-09-25 12:03:31.698 [http-nio-9959-exec-4] INFO com.hsogoo.ultraman.controller.DemoController - currentTime=1537848165028 - 2018-09-25 12:03:31.698 [http-nio-9959-exec-4] INFO com.hsogoo.ultraman.controller.DemoController - zkUrl=127.0.0.1 - 2018-09-25 12:03:31.698 [http-nio-9959-exec-4] INFO com.hsogoo.ultraman.controller.DemoController - redisUrl=10.1.1.3 - 2018-09-25 12:03:31.698 [http-nio-9959-exec-4] INFO com.hsogoo.ultraman.controller.DemoController - webSite=www.baidu.com - 2018-09-25 12:03:31.698 [http-nio-9959-exec-4] INFO com.hsogoo.ultraman.controller.DemoController - companyName=companyName #### TODO List 1. config-server的管理功能的完善,目前只是mock的。 2. 配置的类型适配,目前还只是String类型。 #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)