Spring Cloud Apollo 实践
接上一篇Windows下安装Apollo的常见问题,安装完毕后试着看怎么来使用一下。
首先到管理页面创建一个新的应用:


创建成功后会自动跳转到应用的维护界面,如下图所示:

新增一个配置信息来进行后续的验证,添加成功后右上角弹出提示如需生效请发布,同时新增的配置项发布状态也是未发布,如下图中箭头指向以及框出的区域所示:

接下来随便找个Spring Cloud的工程,首先在pom中添加Apollo的依赖:
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.6.0</version>
</dependency>
application.yml中添加Apollo相关的配置信息以及用来验证的配置项:
# Apollo 相关配置
app:
id: spring-cloud-application # 与 Apollo 配置中心中的 AppId 一致 apollo:
meta: http://localhost:8080 # Apollo 中的 Eureka 注册中心地址
#cluster: # 指定 Apollo 集群,相同集群实例使用对应集群的配置
#cacheDir: # 配置缓存目录,网络不可用时任然可提供配置服务
bootstrap:
enable: true # 启用 apollo env: DEV # 指定环境
date: 20210903
添加对应到配置信息的配置类:
@Component
@ConfigurationProperties
public class ConfigProperties { @Value("${date}")
private Integer date; public Integer getDate() {
return date;
}
}
同时在Controller层尝试获取该配置信息:
@RestController
@RequestMapping("/query")
public class ServiceController { @Autowired
private ConfigProperties configProperties; @GetMapping("/getDate")
public Integer getDate() {
return configProperties.getDate();
}
}
启动类中添加注解@EnableApolloConfig后便可以启动验证:

不过仔细观察启动信息,发现控制台有输出如下报错信息,应该是由于配置中心之前添加的配置项还未发布引起的:
2021-09-04 15:47:45.883 WARN 15804 --- [figRepository-1] c.c.f.a.i.RemoteConfigRepository : Load config failed, will retry in 1 SECONDS. appId: spring-cloud-application, cluster: default, namespaces: application
2021-09-04 15:47:46.893 WARN 15804 --- [figRepository-1] c.c.f.a.i.AbstractConfigRepository : Sync config failed, will retry. Repository class com.ctrip.framework.apollo.internals.RemoteConfigRepository, reason: Load Apollo Config failed - appId: spring-cloud-application, cluster: default, namespace: application, url: http://160.18.15.177:8080/configs/spring-cloud-application/default/application?ip=160.18.15.177&messages=%7B%22details%22%3A%7B%22spring-cloud-application%2Bdefault%2Bapplication%22%3A1%7D%7D [Cause: [status code: 404] Could not find config for namespace - appId: spring-cloud-application, cluster: default, namespace: application, please check whether the configs are released in Apollo!]
这时我们在Apollo的配置中心对之前创建的配置项进行发布:

发布成功后看到客户端应用的控制台有如下信息打印:
2021-09-04 15:50:28.360 INFO 15804 --- [Apollo-Config-1] c.f.a.s.p.AutoUpdateConfigChangeListener : Auto update apollo changed value successfully, new value: 20210904, key: date, beanName: configProperties, field: provider.config.ConfigProperties.date
再看看这时获取到的日期配置是否改变:

成功刷新,并且这时如果重新启动客户端应用会发现上一次从配置中心同步配置的报错也不再输出了。
参考资料:
https://www.cnblogs.com/mrhelloworld/p/apollo1.html
Spring Cloud Apollo 实践的更多相关文章
- Spring cloud项目实践(一)
链接地址:http://sail-y.github.io/2016/03/21/Spring-cloud%E9%A1%B9%E7%9B%AE%E5%AE%9E%E8%B7%B5/ 什么是Spring ...
- Spring Cloud开发实践 - 01 - 简介和根模块
简介 使用Spring Boot的提升主要在于jar的打包形式给运维带来了很大的便利, 而Spring Cloud本身的优点不是那么明显, 相对于Dubbo而言, 可能体现在跨语言的交互性上(例如可以 ...
- Nacos整合Spring Cloud Gateway实践
Spring Cloud Gateway官网:http://spring.io/projects/spring-cloud-gateway Eureka1.0的问题和Nacos对比:https://w ...
- Spring Cloud开发实践 - 04 - Docker部署
Docker的安装和命令可以参考 https://www.cnblogs.com/milton/p/9866963.html . 资源规划 这一步要区分传统资源和Docker资源, 为后面的细节定好基 ...
- Spring Cloud开发实践 - 03 - 接口实现和下游调用
接口实现 Scot Commons Impl 接口实现模块 scot-commons-impl, 一方面实现了 scot-commons-api 的接口, 一方面将自己暴露为 REST 服务. 有4个 ...
- Spring Cloud开发实践 - 02 - Eureka服务和接口定义
服务注册 EurekaServer Eureka服务模块只有三个文件, 分别是pom.xml, application.yml 和 EurekaServerApplication.java, 内容如下 ...
- 微服务电商项目发布重大更新,打造Spring Cloud最佳实践!
Spring Cloud实战电商项目mall-swarm地址:转发+关注 私信我获取地址 系统架构图 系统架构图 项目组织结构 mall├── mall-common-- 工具类及通用代码模块├─ ...
- Spring Cloud Eureka 实践(二)
接上一篇的内容,Eureka服务已经启动成功后,可以尝试开发服务的提供者与消费者,并注册到Eureka来实现服务的发现与调用. 首先,在父工程中继续创建服务提供者的Module,最新的目录结构如下图所 ...
- Spring Cloud Eureka 实践(一)
Spring Cloud Eureka是Spring Cloud Netflix微服务套件中的一部分,主要在Spring Cloud架构中提供服务注册发现的功能.那么是不是可以尝试在本地搭一个单例Eu ...
随机推荐
- docker报错Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
docker报错Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon run ...
- ABC133简要题解
A T or T TOT 模拟即可 B Good Distance \(O(n^2)\) 模拟. C Remainder Minimization 2019 把 \(r\) 变成 \(l+2019\) ...
- Windows协议 LDAP篇 - 域权限
windows 访问控制模型 也就是大名鼎鼎的ACM,access control mode 由两部分组成的. 访问令牌(access tokens) 其中包含有关登录用户的信息(User SID,G ...
- 三年Android开发,竟只会增删改查,被面试官一顿怼!
最近看到某公司面试官发的这样一个帖子: 我面试了一个有三年Android开发经验的小伙子,也是我有史以来给别人面试时间最短的一次,不到十分钟就结束了,原因很简单,底子太差只会curd,很多技术性的问题 ...
- AMD CMD commonJS es6
看到很多人傻傻的分不清楚 AMD.CMD . commonJS . es6的区别,实际上这跟这几年前段技术的发展有很大的关系. 实际上这是JavaScript的模块化思想演进的一个过程. 最开始的时候 ...
- linux c语言学习笔记之守护进程
哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处 http://blog.csdn.net/woshixingaaa/archive/2010/06/06/5651095.aspx 守 ...
- 寻找写代码感觉(一)之使用 Spring Boot 快速搭建项目
写在前面 现在已经是八月份了,我已经荒废了半年居多,不得不说谈恋爱确实是个麻烦的事,谈好了皆大欢喜,分手了就是萎靡不振,需要很长一段时间才能缓过来. 人还是要有梦想的,至于实现只不过是一个契机,但凡不 ...
- 值得收藏 | 深度剖析 TensorCore 卷积算子实现原理
作者:章晓 | 旷视 MegEngine 架构师 一.前言 2020 年 5 月 Nvidia 发布了新一代的 GPU 架构安培(Ampere).其中和深度学习关系最密切的莫过于性能强劲的第三代的 T ...
- sql server时间转换
--getdate 获取当前时间 select getdate() --dateadd 原有时间加: 2013-02-17 13:20:16 此时间加12个月 select dateadd(MONTH ...
- 两款轻量级服务器 Http-server && SimpleHTTPServer
Http-server # 全局安装 npm install http-server -g # 启动服务 # 禁用缓存 http-server -c-1 # 在当前目录下的www启动服务器 http- ...