接上一篇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 实践的更多相关文章

  1. 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 ...

  2. Spring Cloud开发实践 - 01 - 简介和根模块

    简介 使用Spring Boot的提升主要在于jar的打包形式给运维带来了很大的便利, 而Spring Cloud本身的优点不是那么明显, 相对于Dubbo而言, 可能体现在跨语言的交互性上(例如可以 ...

  3. Nacos整合Spring Cloud Gateway实践

    Spring Cloud Gateway官网:http://spring.io/projects/spring-cloud-gateway Eureka1.0的问题和Nacos对比:https://w ...

  4. Spring Cloud开发实践 - 04 - Docker部署

    Docker的安装和命令可以参考 https://www.cnblogs.com/milton/p/9866963.html . 资源规划 这一步要区分传统资源和Docker资源, 为后面的细节定好基 ...

  5. Spring Cloud开发实践 - 03 - 接口实现和下游调用

    接口实现 Scot Commons Impl 接口实现模块 scot-commons-impl, 一方面实现了 scot-commons-api 的接口, 一方面将自己暴露为 REST 服务. 有4个 ...

  6. Spring Cloud开发实践 - 02 - Eureka服务和接口定义

    服务注册 EurekaServer Eureka服务模块只有三个文件, 分别是pom.xml, application.yml 和 EurekaServerApplication.java, 内容如下 ...

  7. 微服务电商项目发布重大更新,打造Spring Cloud最佳实践!

    Spring Cloud实战电商项目mall-swarm地址:转发+关注 私信我获取地址 系统架构图   系统架构图 项目组织结构 mall├── mall-common-- 工具类及通用代码模块├─ ...

  8. Spring Cloud Eureka 实践(二)

    接上一篇的内容,Eureka服务已经启动成功后,可以尝试开发服务的提供者与消费者,并注册到Eureka来实现服务的发现与调用. 首先,在父工程中继续创建服务提供者的Module,最新的目录结构如下图所 ...

  9. Spring Cloud Eureka 实践(一)

    Spring Cloud Eureka是Spring Cloud Netflix微服务套件中的一部分,主要在Spring Cloud架构中提供服务注册发现的功能.那么是不是可以尝试在本地搭一个单例Eu ...

随机推荐

  1. 模式识别课程大作业 Shopee 商品图像检索

    大作业项目简介 在如今的信息科技时代, 带有拍照功能的移动设备如手机.相机等得到了极大的普及和流行, 各种各样的图片和视频可以随时随地获得, 并借助互联网快速传播, 这种趋势使得网络上的数字图片和视频 ...

  2. Django GIS SQL注入漏洞(CVE-2020-9402)

    影响版本 Django 1.11.29之前的1.11.x版本.2.2.11之前的2.2.x版本和3.0.4之前的3.0.x版本中存在SQL注入漏洞 提示有admin.vuln.vuln2,3个页面,存 ...

  3. Python - 解包的各种骚操作

    为什么要讲解包 因为我觉得解包是 Python 的一大特性,大大提升了编程的效率,而且适用性很广 啥是解包 个人通俗理解:解开包袱,拿出东西 正确理解:将元素从可迭代对象中一个个取出来 python ...

  4. http笔记随笔

    1.HTTP (HyperText Transfer Protocol)超文本传输协议(80端口) 1.规定浏览器和服务器之间相互通信的规则 2.万维网交换信息的基础 3.允许将HTML文档从Web服 ...

  5. 文件上传之WAF绕过及相安全防护

    文件上传在数据包中可修改的地方 Content-Disposition:一般可更改 name:表单参数值,不能更改 filename:文件名,可以更改 Content-Type:文件 MIME,视情况 ...

  6. 爱了,字节跳动大神最佳整理:582页Android NDK七大模块学习宝典,理论与实践

    前言 时至今日,短视频App可谓是如日中天,一片兴兴向荣.随着短视频的兴起,音视频开发也越来越受到重视,而且薪资水涨船高,以一线城市为例,音视频工程开发的薪资比Android应用层开发高出40%. 但 ...

  7. net Entityframerwork+sqlite 数据库迁移配置(采坑日记)

    1首先在app.config配置写入add 1:<provider invariantName="System.Data.SQLite.EF6" type="Sys ...

  8. 基于ssm的电影售票选座管理系统基于Java的电影网站的网页设计与制作源码

    注意:此项目只截图部分功能,可评论区咨询查看项目全部功能演示! 1.开发环境 开发语言: 后台框架:SSM(Spring+SpringMVC+Mybatis) 前端技术:HTML+CSS+JavaSc ...

  9. awk-08-综合例子

    分析nginx日志 1.统计访问IP次数 2.统计访问IP大于10次的 3.统计访问IP次数,并取出前几的访问数 4.统计时间段访问最多的IP 5.统计访问最多的10个页面 6.统计每个 URL 数量 ...

  10. SQL语法 - SELECT 语句

    SELECT 语句用于从数据库中选取数据. SQL SELECT 语句 SELECT 语句用于从数据库中选取数据. 结果被存储在一个结果表中,称为结果集. SQL SELECT 语法 SELECT c ...