config-toolkit之config-face

config-toolkit是当当网开发的开源项目,使用起来非常的方便。对于很多配置都可以写在配置中心中,进行配置数据的获取,这样我们可以不用把很多信息写在了代码里面,例如数据库账号密码等信息。

config-toolkit的github

地址为:https://github.com/dangdangdotcom/config-toolkit
github下面下来的代码中总共有三个目录:
config-face:操作数据的web项目,可以对数据对行增改删等操作(本文分析)
config-toolkit:自己项目中实际引入这个jar包,进行获取配置数据
config-toolkit-demo:官方给出操作的模版

config-face

config-face项目结构

config-face是一个SpringBoot项目,启动类为ConfigFaceApplication。简单地封装了界面及后台逻辑
config这里主要进行权限控制和用户登录时密码和用户名效验并进行角色赋值。
controller做为前后端交互的入口,接收前端的调用。主要进行版本、分组、配置项的增删改查。
entity封装了消息返回和接收类
service主要进行了数据的封装及增删改查操作

怎么去改变zookeeper的配置项值

整个项目中除了数据的封装最主要的就是数据的增删改查,项目使用了Curator工具对zookeeper的数据进行操作,增删改会触发zookeeper的watch监听,是实现热加载的重要操作

    @Value("${zk}")
    private String zkAddress;

    private CuratorFramework client;

    @PostConstruct
    private void init() {
        client = CuratorFrameworkFactory.newClient(zkAddress, new ExponentialBackoffRetry(1000, 3));
        client.start();
    }

    @PreDestroy
    private void destroy() {
        if (client != null) {
            client.close();
        }
    }

client.create().creatingParentsIfNeeded().forPath(node, value.getBytes(Charsets.UTF_8));

client.delete().deletingChildrenIfNeeded().forPath(node);

client.setData().forPath(node, value.getBytes(Charsets.UTF_8));

client.getData().forPath(node);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,486评论 19 139
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,126评论 2 89
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,660评论 25 709
  • 倚窗听檐语 滴滴话相思 不禁指微触 冷醒梦中痴
    笔尖的谎言阅读 1,586评论 0 0
  • 曾经,对心理学不了解,当然,现在也不算了解。以为学心理学的人都有神技,如同下面所述的三类神人。 一是神棍。他们自带...
    妖女青青阅读 3,089评论 0 1