apllo开源分布式配置中心怎么部署
今天小编给大家分享一下apllo开源分布式配置中心怎么部署的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
什么是apllo开源分布式配置中心?
apllo开源分布式配置中心是携程框架部门研发的一个能够集中化管理应用的不同环境、不同集群的配置,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
apllo开源分布式配置中心有什么优势?
apllo开源分布式配置中心有以下几个优势:
支持多种数据格式(properties, xml, json, yaml, txt等)
支持多种语言(Java, .Net, Go等)
支持多种环境(DEV, FAT, UAT, PRO等)
支持多种集群(default, shanghai, beijing等)
支持多种命名空间(namespace),可以将不同的配置放到不同的命名空间中
支持灰度发布和回滚功能
支持修改推送和实时生效
支持权限控制和审计功能
如何部署apllo开源分布式配置中心?
部署apllo开源分布式配置中心需要以下几个步骤:
下载并解压apollo-build-scripts.zip文件
修改build.sh文件中的数据库连接信息和端口号
运行build.sh文件生成可执行文件
运行startup.sh文件启动服务端
访问http://localhost:8070/进入控制台
如何在springBoot项目中获取apollo的配置?
在springBoot项目中获取apollo的配置需要以下几个步骤:
在pom.xml文件中添加apollo-client依赖
<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.8.0</version></dependency>
在resources目录下创建META-INF/app.properties文件,并指定app.id和env属性
app.id=sample-app # 应用ID,与Apollo控制台保持一致env=DEV # 环境,与Apollo控制台保持一致
在application.yml或application.properties文件中指定apollo.bootstrap.enabled=true和apollo.meta=http://localhost:8080属性
# application.ymlapollo: bootstrap: enabled: true # 启用Apollo自动注入功能 meta: http://localhost:8080 # 指定Apollo服务端地址,也可以通过-D参数传递或者通过系统变量设置
在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 // 对象注解 @ConfigurationPropertiesprefix="user" // 对象前缀 @RefreshScope // 实时更新注解 public class User { private String name; private int age; // 省略getter和setter方法}// 在控制器中注入对象@RestControllerpublic class UserController { @Autowired private User user; @GetMapping("/user") public User getUser() { return user; }}
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开源分布式配置中心怎么部署”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341