基于 Apollo 实现配置灰度发布(下)

简介: 基于 Apollo 实现配置灰度发布(下)

3、apollo连接测试

在工程中写一个接口,测试一下是否能从apollo上面读取到配置,测试读取一下下面这个配置

@Value("${uyun:default}")
private String uyunname;
@GetMapping("/getUyunName")
public String getUyunName(){
    return uyunname;
}

启动项目,浏览器访问一下该接口,可以看到能成功访问到apollo,说明与apollo的整合完毕

如何解决本文开篇谈到的使用apollo实现配置文件的灰度发布呢?回到apollo,我们注意到这里有个“灰度”按钮

这是什么意思呢?简单理解就是,使用这个灰度按钮的功能,可以对当前的配置文件进行一份拷贝,类似备份,同时我们可以对灰度的配置进行添加,修改,删除等操作,而灰度文件的修改不会影响到主配置文件,下面我们对 "dubbo"这个配置文件做一下灰度的配置吧

点击“灰度”

可以看到,灰度创建的内容是对主配置文件的全量拷贝,当然灰度配置也需要像主配置文件那样进行发布之后才能使用的,点击发布,弹出一个需要我们设置灰度规则的框

简单解释下,既然是灰度发布的配置文件,自然不能让所有的客户端访问到,这里apollo提供了几种配置规则方式,这里我选择了直接配置IP的方式,将本机的IP填进去,然后保存,再次发布即可

这个规则的含义就是,当前dubbo的这个灰度配置文件,只能允许我的本机IP进行访问,接下来就让我们做一下验证吧

4、灰度配置测试

在工程中新增一个接口,同时给灰度配置文件中新增2个配置

@Value("${name:default}")
  private String uname;
  @Value("${age:default}")
  private String age;
  @GetMapping("/getUyunName")
  public String getUyunName(){
      return uyunname;
  }

将本机的其中一个项目启动,访问新增的这个接口,可以发现,能够成功访问到灰度文件中的配置信息

为了验证灰度的功能,我们将项目打成jar包,部署到服务器上,服务器的IP不在灰度配置列表中,理论上是无法访问到 age 这个新增的配置的

成功启动后,浏览器直接访问云服务器上面的这个接口,这时,可以发现,同样的接口,由于IP未配置在灰度规则中,将无法读取到age这个配置的值

踩坑提醒

如果使用的是阿里云或者其他云服务器部署apollo的时候,本地项目连接apollo的时候会一直报apollo的连接超时问题,这个问题的解决办法是,在启动的配置vm中,添加如下参数即可

-Dapollo.configService=http://apollo部署的主机IP:8080



相关文章
|
存储 关系型数据库 数据库
聊多版本并发控制(MVCC)
MVCC是数据库并发控制技术,用于减少读写冲突。它维护数据的多个版本,使事务能读旧数据而写新数据,无需锁定记录。当前读获取最新版本,加锁防止修改;快照读不加锁,根据读取时的读视图(readview)决定读哪个版本。InnoDB通过隐藏字段(DB_TRX_ID, DB_ROLL_PTR)和undo log存储版本,readview记录活跃事务ID。读已提交每次读取都创建新视图,可重复读则在整个事务中复用一个视图,确保一致性。MVCC通过undo log版本链和readview规则决定事务可见性,实现了非阻塞并发读。
2056 5
聊多版本并发控制(MVCC)
|
XML 缓存 监控
Spring之面向切面(AOP)
Spring之面向切面(AOP)
375 0
|
9月前
|
人工智能 测试技术 开发工具
游戏外包开发的流程
本文详解2026年游戏外包开发全流程:从需求对接、预研原型、正式开发到集成测试与交付验收,突出AI工具提效与艺术-技术平衡。涵盖商务、技术、协作三大维度,并揭示沟通、文档、版本三大核心痛点。(239字)
|
10月前
|
存储 缓存 NoSQL
项目《神领物流》
项目《神领物流》基于微服务架构,涵盖用户、快递员、司机多端协同,实现智能调度与路线规划。采用Neo4j优化路径计算,Redis提升运费模板查询性能,结合RabbitMQ保障消息可靠传输,并通过多级缓存、布隆过滤器等技术应对高并发场景,全面提升系统效率与稳定性。
|
分布式计算 大数据 数据处理
浅谈几个经典大数据处理框架
【6月更文挑战第15天】本文介绍企业如何在数据洪流中保持竞争力需借助可扩展平台和数据策略。数据管道整合多元数据源,便于分析和流转。Kappa架构专注于实时处理(如通过Kafka、Spark Streaming),适合实时响应场景;Lambda架构结合批处理与实时处理(如Spark、Hadoop与Flink),平衡实时性和批处理,易于开发和维护。Apache Beam提供统一模型,适用于流处理和批处理,提升代码复用和效率。这两种架构满足现代应用对数据一致、性能和灵活性的需求。
1790 3
浅谈几个经典大数据处理框架
|
Java 数据库 开发者
详细介绍SpringBoot启动流程及配置类解析原理
通过对 Spring Boot 启动流程及配置类解析原理的深入分析,我们可以看到 Spring Boot 在启动时的灵活性和可扩展性。理解这些机制不仅有助于开发者更好地使用 Spring Boot 进行应用开发,还能够在面对问题时,迅速定位和解决问题。希望本文能为您在 Spring Boot 开发过程中提供有效的指导和帮助。
2682 12
微信接口报错 "errcode":40163,"errmsg":"code been used, 如何处理?
【10月更文挑战第11天】微信接口报错 "errcode":40163,"errmsg":"code been used, 如何处理?
8528 1
|
存储 消息中间件 JSON
DDD基础教程:一文带你读懂DDD分层架构
DDD基础教程:一文带你读懂DDD分层架构
|
传感器 监控 Linux
Linux|奇怪的知识---CPU温度监控
Linux|奇怪的知识---CPU温度监控
793 1
|
SQL JavaScript Dubbo
基于 Apollo 实现配置灰度发布(上)
基于 Apollo 实现配置灰度发布(上)

热门文章

最新文章