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 ...
随机推荐
- FastAPI:一个测试人员视角的教程
前言 教程肯定谈不上了,主要还是就自己的理解分享内容而已 内容是连官方文档的基础教程都没涵盖起的 建议直接看官方文档 以个人视角来分享,希望各位通过这个可以写接口了 需要自取 完整视频链接:https ...
- Mysql命令语句
常用的管理命令 SHOW DATABASES; //显示当前服务器下所有的数据库 USE 数据库名称; //进入指定的数据 show tables; ...
- 电脑软件安装过程文档.BA
MD 01-打印并阅读-电脑软件安装过程文档.BAT-即此批处理脚本文档MD 02-阅读-电脑软件安装经验教训文档.DOCX-MD 03-制作-杏雨梨云USB维护系统2019中秋版之国庆更新-可启动U ...
- SQL排序包含数字、字母和中文处理
--模拟数据 SELECT * INTO #temp FROM ( SELECT 1 AS id, 'C101' AS sort UNION ALL SELECT 2 AS id, 'B101' AS ...
- python中单例模式的创建
# 单例模式(使用装饰器) def singleton(cls): instance = {} def wrapper(*args,**kwargs): if cls not in instance: ...
- CF427B
没人用ST表么?他比线段树快. 考虑先把ST表跑下来,然后循环一遍区间的起点,看一下这个区间的最大值,和 \(t\) 比较一下即可. 然后这题就做完了.ST表裸题. int f[2000010][21 ...
- springboot上传文件路径存放
@Beanpublic EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() { return (Config ...
- SpringBoot开发十-开发登录,退出功能
需求介绍-开发登录,退出功能 访问登录页面:点击头部区域的链接打开登录页面 登录: 验证账号,密码,验证码 成功时生成登录凭证发放给客户端,失败时跳转回登录页面 退出: 将登录状态修改为失效的状态 跳 ...
- iOS开发之转盘菜单
前言 使用Swift实现的转盘菜单,主要用到UIBezierPath.CALayer遮罩绘制扇形UIView,CATransform3DMakeRotation实现旋转动画.代码设计使用默认confi ...
- 【原创】Dubbo 2.7.8多个远程代码执行漏洞
马上年底了,发现年初定的几个漏洞的KPI还没来得及完成,趁着最近有空赶紧突击一波,之前业务部门被爆过Dubbo的漏洞,干脆就把Dubbo拖过来挖一把.之前没用过Dubbo,既然要挖它就先大体了解了一下 ...