当前位置: 首页 > 后端技术 > PHP

分布式配置中心duic

时间:2023-03-30 06:00:10 PHP

什么是配置?服务运行时可以被外部动态修改的参数就是配置。在运行时动态改变服务的行为,避免业务发生变化时需要修改代码或重启服务。什么是duic?duic是一个配置管理中心,提供标准的配置格式和编辑方式,进行统一的配置管理。设计目标是统一不同应用的配置管理方式,创造更人性化的配置编辑方式,提供更灵活的配置获取方式。如上图:duic支持任意语言(Java、Go、Android、Web等)的任意应用和配置管理。同时,duic使用YAML语法作为配置文件格式,支持数据类型和结构化配置。如上图使用YAML编辑配置后,通过RESTful接口获取配置(PS:目前官方提供Java、Android、Go语言的SDK,后续会支持更多语言)未来)。为什么YAML作为配置格式?YAML是一种常见的数据格式。YAML支持结构化配置,可以弥补properties等简单key=value格式的不足。YAML支持数据类型。YAML支持引用。YAML支持注释。YAML具有很高的可读性,并且支持MongoDB、MySQL、PostgreSQL和Oracle存储。配置信息配置修改实时更新支持多配置合并支持按需配置获取支持历史版本对比支持配置克隆支持用户权限控制支持IP/Token访问限制支持开箱即用的Docker部署,duic的每个release版本都可以可以通过GitHubReleases获取jar包进行部署,也可以在DockerHub上获取Docker镜像直接部署。你只需要关注如何使用duic,而不用关心内部的实现细节。当然,如果你对实现细节感兴趣,也非常欢迎你帮忙review代码。您的帮助可以使duic代码更加简洁。MySQL部署从GitHub发布页面下载最新版本的duic-x.x.x.jar文件。前提Java>=1.8MySQL>=5.6创建数据库CREATEDATABASEIFNOTEXISTS`duic`CHARACTERSETutf8mb4COLLATEutf8mb4_bin;配置数据库连接application.ymlspring:datasource:url:jdbc:mysql://127.0.0.1:3306/duic?autoReconnect=true&useServerPrepStmts=true用户名:root密码:rootPS:将application.yml文件和duic-x.x.x.jar文件放在同一目录下。duic是使用spring-boot开发的,配置文件目录按照spring-boot默认的加载方式完成。关于spring-boot的更多配置,可以了解启动服务java-Dspring.profiles.active=mysql-jarduic.jar输出如下日志,恭喜,你的duic已经启动成功。___________|__`。(_).'___|||`。\____/。'\_|||||[|||[|||_||_.'/|\_/|,||\`.___.'\|______.''.__.'_/[___]`.____.'::duic::(v1.5.2-SNAPSHOT)2018-05-0307:06:05,980INFOi.z.d.server.Application$Companion-启动Application.Companionv1.5.2-SNAPSHOTonubuntuwithPID47440(/opt/duic/duic.jarstartedbyzyin/opt/duic)2018-05-0307:06:05,984INFOi.z.d.server.Application$Companion-以下配置文件处于活动状态:mysql,prod2018-05-0307:06:09,595INFOr.i.netty.tcp.BlockingNettyContext-在/0:0:0:0上启动了HttpServer:0:0:0:0%0:77772018-05-0307:06:09,596INFOo.s.b.w.e.netty.NettyWebServer-Netty在端口上启动:77772018-05-0307:06:09,600INFOi.z.d.server。Companion-StartedApplication.Companionin4.192seconds(JVMrunningfor4.864)登录控制台编辑你的第一个配置http://[IP]:7777/index.htmlPS:记得把IP换成你服务的IP.这里就是duic部署的全部内容。有什么问题可以给我留言,我会一一解答。关于duic部署的更多信息,可以参考官方文档DuiCWiki。登录并创建你的第一个配置https://duic.zhudy.io/index.htmlspring-boot加载配置添加Maven依赖io.zhudy.duicduic-spring-cloud-config-client2.0.1添加Gradle依赖编译"io.zhudy.duic:duic-spring-cloud-config-client:2.0.1"添加得到bootstrap.yml配置文件中的配置信息duic:spring:cloud:config:uri:https://duic.zhudy.io/api/v1name:helloprofile:first#token:[TOKEN]uri配置中心地址前缀名配置nameprofile配置环境名称,多次使用,分离配置可以在spring-boot项目中使用@ConfigurationProperties@Value注入配置依赖,duic不提供任何自定义注解,完全符合spring-boot编程习惯,无缝接入和移除的。GitHub:duic-spring-cloud-config-clientspringload配置添加Maven依赖io.zhudy.duicduic-spring-cloud-config-client2.0.1添加Gradle依赖编译"io.zhudy.duic:duic-spring-cloud-config-client:2.0.1"配置springbean后,可以在项目中使用@Value注入配置,完全符合spring编程习惯,支持配置热加载.GitHub:duic-java-clientgo加载配置importduic-go-client依赖包goget-ugithub.com/zhudyos/duic-go-client初始化配置信息duic.BaseUri="https://duic.zhudy.io/api/v1"duic.Name="hello"duic.Profiles="first"duic.Init()获取配置duic.Bool("key")//获取bool配置duic.Int("key")//获取一个int配置duic.Float64("key")//获取一个float64配置duic.String("key")//获取一个字符串配置duic.Array("key")//获取一个数组配置duic.Object("key")//获取对象配置EpiloguePR欢迎!!!GitHub:https://github.com/zhudyos/duicQQ群:540315111