文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

apllo开源分布式配置中心详解

2023-02-22 12:01

关注

什么是apllo开源分布式配置中心?

apllo开源分布式配置中心是携程框架部门研发的一个能够集中化管理应用的不同环境、不同集群的配置,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

apllo开源分布式配置中心有什么优势?

apllo开源分布式配置中心有以下几个优势:

如何部署apllo开源分布式配置中心?

部署apllo开源分布式配置中心需要以下几个步骤:

如何在springBoot项目中获取apollo的配置?

在springBoot项目中获取apollo的配置需要以下几个步骤:

1. 在pom.xml文件中添加apollo-client依赖

<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-client</artifactId>
    <version>1.8.0</version>
</dependency>

2. 在resources目录下创建META-INF/app.properties文件,并指定app.id和env属性

app.id=sample-app # 应用ID,与Apollo控制台保持一致
env=DEV # 环境,与Apollo控制台保持一致

3. 在application.yml或application.properties文件中指定apollo.bootstrap.enabled=true和apollo.meta=http://localhost:8080属性

# application.yml
apollo:
  bootstrap:
    enabled: true # 启用Apollo自动注入功能
  meta: http://localhost:8080 # 指定Apollo服务端地址,也可以通过-D参数传递或者通过系统变量设置 

4. 在springBoot项目中使用@Value或@ConfigurationProperties注解获取配置值

// 使用@Value注解获取单个值,需要指定${}占位符和默认值,如果没有默认值,则必须在Apollo控制台设置该值,否则会报错。
// 另外,如果想要实时更新值,还需要添加@RefreshScope注解。
@RestController
@RefreshScope // 实时更新注解 
public class SampleController {
  @Value("${timeout:100}") // 单个值注解 
  private int timeout;
  @GetMapping("/timeout")
  public int getTimeout() {
    return timeout;
  }
}
// 使用@ConfigurationProperties注解获取对象值,需要指定prefix属性,并且在类上添加@Component或@Bean注解。
// 另外,如果想要实时更新对象,还需要添加@RefreshScope注解。
@Component // 对象注解 
@ConfigurationProperties
prefix="user" // 对象前缀 
@RefreshScope // 实时更新注解 
public class User {
  private String name;
  private int age;
  // 省略getter和setter方法
}
// 在控制器中注入对象
@RestController
public class UserController {
  @Autowired
  private User user;
  @GetMapping("/user")
  public User getUser() {
    return user;
  }
}

5. ConfigService类来获取apollo的配置

我们公司用的是这个方法来获取配置

ConfigService类是apollo客户端提供的一个核心类,它可以通过静态方法getAppConfig()或者getConfig(namespace)来获取Config对象,然后通过Config对象的方法来获取配置值。

例如:

// 获取默认命名空间的配置
Config config = ConfigService.getAppConfig();
// 获取指定命名空间的配置
Config config = ConfigService.getConfig("test");
// 获取配置值,如果没有则返回默认值
String value = config.getProperty("key", "default");
// 添加配置变更监听器
config.addChangeListener(new ConfigChangeListener() {
  @Override
  public void onChange(ConfigChangeEvent changeEvent) {
    // 处理变更事件
  }
});

使用ConfigService获取配置的优势是:

以上就是apllo开源分布式配置中心详解的详细内容,更多关于apllo开源分布式配置的资料请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯