淘宝动态配置diamond-server 源码讲解

本文详细讲解了淘宝动态配置系统Diamond-Server的源码,涉及启动时加载的bean,包括NotifyService、PersistService和TimerTaskService。重点阐述了如何添加和提交配置数据,以及Diamond如何通知其他实例实现同步,特别提到了NotifyService和TimerTaskService的角色。内容旨在帮助读者理解Diamond-Server的工作机制。
摘要由CSDN通过智能技术生成

1.diamond-server工程里 使用了我们常用的一些技术 比如spring springmvc jsbctamplate 等等这些技术


   jar包如下

                 

2.首先我们先从启动tomcat的时候 加载bean的时候 会有三个bean进行初始化数据的bean开始分析

   2.1加载diamond-server其他实例的ip地址和端口号

         com.taobao.diamond.server.service.NotifyService

        

@PostConstruct
    public void loadNodes() {
        InputStream in = null;
        try {
            in = ResourceUtils.getResourceAsStream("node.properties");
            nodeProperties.load(in);
        }
        catch (IOException e) {
            log.error("加载节点配置文件失败");
        }
        finally {
            try {
                if (in != null)
                    in.close();
            }
            catch (IOException e) {
                log.error("关闭node.properties失败", e);
            }
        }
        log.info("节点列表:" + nodeProperties);
    }

        node配置文件里面的内容(在本地部署两个tomcat实例)

       

A=http://10.144.35.250:8080/diamond-server/notify.do
B=http://10.144.35.250:9090/diamond-server1/notify.do

    2.2加载数据库信息,创建BasicDataSource,JdbcTemplate对象

          com.taobao.diamond.server.service.PersistService

   

@PostConstruct
    public void initDataSource() throws Exception {
        // 读取jdbc.properties配置, 加载数据源
        Properties props = ResourceUtils.getResourceAsProperties("jdbc.properties");
        BasicDataSource ds = new BasicDataSource();
        ds.setDriverClassName(JDBC_DRIVER_NAME);
        ds.setUrl(ensurePropValueNotNull(props.getProperty("db.url")));
        ds.setUsername(ensurePropValueNotNull(props.getProperty("db.user")));
        ds.setPassword(ensurePropValueNotNull(props.getProperty("db.password")));
    
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值