`

disconf-注解式分布式配置

    博客分类:
  • web
 
阅读更多

原文链接:http://blog.csdn.net/jthink_/article/details/50556740

  1. disconf-web配置
    1. 在disconf-web上点击新建app创建一个新的app,这里假设app名字为:app_test
    2. disconf-web上点击新建配置文件新建一个配置文件,APP选择刚刚的app_test,版本自定义成:0.0.1,环境可选择local环境,直接选择上传文件,比如我们这里上传dev.properties,内容如下:
      disconf.test=disconf_test
  2. 项目使用
    1. pom.xml中加入disconf,如下:
      <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.7.2</version>
      </dependency>
      由于自己项目需要下载disconf托管的配置文件,所以项目还需要引入httpclient
      <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.1</version>
      </dependency>
    2. 准备disconf.properties
      # 是否使用远程配置文件
      # true(默认)会从远程获取配置 false则直接获取本地配置
      enable.remote.conf=true

      #
      # 配置服务器的 HOST,用逗号分隔 127.0.0.1:8000,127.0.0.1:8000
      #
      conf_server_host=127.0.0.1:8991

      # 版本, 请采用 X_X_X_X 格式
      version=0.0.1

      # APP 请采用 产品线_服务名 格式
      app=app_test

      # 环境
      env=local

      # debug
      debug=true

      # 忽略哪些分布式配置,用逗号分隔
      ignore=

      # 获取远程配置 重试次数,默认是3
      conf_server_url_retry_times=1
      # 获取远程配置 重试时休眠时间,默认是5
      conf_server_url_retry_sleep_seconds=1
      该配置文件需要放在resources根目录下(这点感觉是很奇怪的规定,其实应该可以指定放入到resource目录下的任何位置)
    3. 修改applicationContext.xml
      在applicationContext.xml中加入如下配置:
      1. 包扫描
        <context:component-scan base-package="xxx.xxx.xxx" />
        <aop:aspectj-autoproxy proxy-target-class="true" />
      2. bean配置
        <bean id="disconfMgrBean" class="com.baidu.disconf.client.DisconfMgrBean"
        destroy-method="destroy">
        <property name="scanPackage" value="upsmart.trans.test"/>
        </bean>
        <bean id="disconfMgrBean2" class="com.baidu.disconf.client.DisconfMgrBeanSecond"
        init-method="init" destroy-method="destroy">
        </bean>
    4. 使用示例
      java代码如下:
      @Service
      @DisconfFile(filename = "dev.properties")
      public class QueryService {

       

      private String disconfTest;

       

      @DisconfFileItem(name = "disconf.test", associateField = "disconfTest")
      public String getDisconfTest() {
          return disconfTest;
      }

       

      public void setDisconfTest(String disconfTest) {
          this.disconfTest = disconfTest;
      }
      这样disconfTest会随着disconf-web中对dev.properties值的修改而修改
  3. 总结

    该方法对代码的侵入性太强,不太适合对老项目的变更

     
    参考:https://github.com/knightliao/disconf/wiki
分享到:
评论

相关推荐

    Disconf 分布式配置使用教程

    在使用 Disconf 时,我们可以使用注解式的分布式配置文件,以便更方便地使用 Disconf 的功能。 Disconf 是一个功能强大且易用的分布式配置管理系统,可以帮助开发者更方便地管理和维护项目中的配置文件。

    26-Spring Cloud分布式配置中心Config1

    Spring Cloud分布式配置中心Config是微服务架构中解决多环境配置管理的一个重要工具。在传统的开发过程中,不同环境(如开发、测试、生产)的配置管理往往由开发人员手动处理,或者通过复杂的流程来确保配置的正确性...

    Ideal版SpringCloud框架参考---分布式微服务架构参考

    Feign是Spring Cloud中的一个声明式Web服务客户端,它简化了客户端的编写工作。开发者可以通过注解接口定义远程调用的服务,Feign会自动生成实现这些接口的HTTP客户端。它与Eureka、Ribbon等组件集成,可以实现负载...

    springboot-jpa atomikos 分布式事务管理

    通过上述配置,SpringBoot应用就能在Atomikos的帮助下,对多数据库进行分布式事务的统一管理。在处理事务时,Atomikos会跟踪事务的边界,确保所有操作要么全部成功,要么全部回滚,从而保证了数据的一致性。 总的来...

    TX-LCN实现分布式锁 Java代码实现

    3. 创建服务提供者:定义服务接口和实现,服务实现类中的方法上使用`@TxcService`注解,表明该方法属于分布式事务的一部分。 4. 创建服务消费者:在服务消费者的类或方法上使用`@TxcAction`注解,指定要调用的服务...

    mybatis-plus及分布式项目简介1

    - **编辑POJO对象**:使用Lombok注解如`@Data`、`@Accessors`、`@NoArgsConstructor`和`@AllArgsConstructor`,以及`@TableName`来完成对象与数据表的映射。 - **编辑Mapper接口**:Mybatis-Plus提供了通用的Mapper...

    集成jta-atomikos 实现分布式事务.zip

    在IT行业中,分布式事务是大型系统中不可或缺的一...通过添加Atomikos的依赖、配置事务管理器以及在服务层使用`@Transactional`注解,我们可以确保在分布式环境下的操作具备原子性,从而保障了系统的稳定性和可靠性。

    ssm整合-注解-xml配置

    Spring+SpringMVC+MyBatis整合相关配置文件:注解+xml配置。个别处需要根据使用情况修改,映射配置文件为示例,需自行编写。依赖maven管理

    基于Spring boot的声明式和编程式分布式锁.zip

    声明式分布式锁主要依赖于AOP(面向切面编程)和注解,使得开发者可以在不修改业务代码的情况下,通过添加注解实现锁的功能。在Spring Boot中,常见的声明式分布式锁解决方案有Redisson、Spring Cache等。 - ...

    Disconf分布式配置管理平台-其他

    4.3、强兼容性:为程序添加了分布式配置注解后,开启Disconf则使用分布式配置;若关闭Disconf则使用本地配置;若开启Disconf后disconf-web不能正常Work,则Disconf使用本地配置。 5、支持配置项多个项目共享,支持...

    Ehcache分布式缓存与其在SpringBoot应用

    3. **SpringBoot场景配置实战**:在SpringBoot应用中,可以通过注解`@Cacheable`、`@CacheEvict`等来控制缓存的存取。实例环境中,你可以创建一个简单的Java测试类,模拟缓存的添加、获取和清除操作。 4. **常见...

    EJB3-JBOSS7-分布式事务示例

    1. **注解驱动**:EJB3允许通过注解(如`@Stateless`、`@Stateful`、`@Singleton`、`@MessageDriven`等)来声明bean的角色和行为,无需XML配置。 2. **依赖注入**:使用`@EJB`、`@Inject`等注解,可以方便地注入其他...

    SpringCloud之七 分布式配置中心SpringCloudConfig.pdf

    Spring Cloud Config是Spring Cloud全家桶中的一个组件,它主要用于实现分布式系统中的配置管理。在微服务架构下,系统通常被拆分成许多个小的微服务,每个服务都有自己的配置文件。当配置文件频繁更改或不同服务...

    LCN-分布式事务配置

    3. 开启LCN事务注解:在服务提供者和消费者接口上使用`@TxTransaction`注解,以标记该方法需要进行分布式事务管理。 4. 注册LCN插件:在Dubbo的配置中,为你的服务提供者和服务消费者注册LCN插件。例如,在`...

    SpringBoot集成Quartz分布式定时任务

    在SpringBoot的配置类中,使用`@Configuration`和`@EnableScheduling`注解,并通过`@Autowired`注入`SchedulerFactoryBean`,编写方法来启动和配置Scheduler。 6. **注册Job和Trigger**: 在应用启动时,通过...

    nacos-server-1.2.1两个压缩包.zip

    - **分布式配置管理**:支持分布式系统中的外部化配置,配置更改时自动刷新。 - **消息驱动能力**:基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。 - **分布式事务**:使用 @GlobalTransactional 注解...

    springboot+websocket分布式实现

    配置WebSocket端点(通常以`@ServerEndpoint`注解标记)并实现相关的方法,如`onOpen`、`onMessage`、`onClose`等,来处理客户端的连接、消息接收和断开连接等事件。 接下来,为了实现实时消息的广播,我们需要一个...

    spring-cloud分布式实战视频教程.txt

    Spring Cloud是一系列框架的有序集合,它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。通过Spring Cloud可以快速高效地...

    Springboot-dubbo-fescar 阿里分布式事务的实现方法

    在实际应用中,开发者需要在每个微服务中配置 Fescar 客户端,注册到 Fescar Server,并在服务接口上添加注解以开启事务。当一个分布式事务开始时,Fescar 会生成一个全局事务 ID,并在每个服务的分支事务中使用。...

    redis-distributed-lock:redis分布式锁工具包,提供纯Java方式调用,支持传统Spring工程, 为spring boot应用提供了starter,更方便快捷的调用

    原生redis分布式锁实现,支持注解,不推荐项目中使用,仅供学习使用 redis-distributed-lock-demo-spring redis-distributed-lock-core 调用实例,仅供学习 基于Redisson的分布式锁spring starter实现,可用于实际...

Global site tag (gtag.js) - Google Analytics