阿里云ACM:云原生配置管理利器,让云上的Spring Cloud应用配置管理舞动起来

在传统架构中,如果配置信息有变更,通常是登陆服务器手动修改配置来使配置生效。在微服务架构中,应用数和节点数由于微服务化数量激增,导致发布次数增加,配置变更难度加大,通常是将应用配置抽象出来放置在外部的配置中心里,从而实现配置变更的自动化,但这类原生方案会存在依赖严重、发布延时高的问题。

Spring Cloud中的标准配置管理方法和存在的问题

以Spring Cloud为例,其提供了Spring Cloud Config组件来默认对配置进行管理。

关于Spring Cloud Config的工作原理,如下图所示:

和传统人肉到生产服务器上一台台手动修改配置的思路不同,在Spring Cloud中,当用户配置发生变化时,用户可以在Git中修改配置,再通过Spring Cloud Config Server动态下发配置,从而在各个机器上动态生效。其整个流程大概如下:

  • 用户在Git中update和commit配置;
  • Spring Cloud Config Server通过回掉,获取更新配置;
  • 用户在其中任一一台机器上执行配置刷新操作 (图中为 "post /bus/refresh")
  • 目标机 (App A)在Config Server中拉取最新配置,并发送消息到消息总线中,通知其他机器配置被变更;
  • 所有其他机器通过消息总线获知配置刷新后,在Config Server中拉取最新配置。

至此,配置修改完成。

Spring Cloud Config组件成功的以配置中心思路解决了静态配置繁琐的运维问题,但是Spring Cloud Config仍存在以下问题:

  • 标准方案依赖Git。虽然提供其他存储支持,但是标准的Git方案饱受争议,毕竟Git运维在业界算是小众领域,在关键的生产环境中使用得并不多(开发测试环境除外);
  • 配置变更依赖Cloud Bus,架构复杂的同时,存在配置的一致性问题;
  • 整个配置的时效性较低。由于发布路径长,中间存在多个异步操作,因此从发布到最后所有配置生效,延时可能会是分钟级别。

阿里云ACM为spring cloud带来的配置管理优化

阿里云应用配置管理服务ACM,作为Nacos的云上实现,可以将以上的配置管理问题进行优化,配置修改将变得异常简单和高效,如下图所示。

整个操作流程分为两步:

  • 用户在ACM中修改配置内容;
  • ACM动态推送到所有应用中。

ACM全面兼容Spring框架接口,包括Spring Framework、Spring Boot和Spring Cloud,其为 Spring Cloud编写的应用配置管理,和Spring Cloud Config对比,由于极简的架构,带来了众多的好处:

  • 配置变更推送性能高,根据阿里巴巴内部的性能统计来看,绝大多数情况下,配置推送0.5秒生效,99.9%场景下,3秒以内能推送到上千台机器;
  • 运维简单,不需要额外的Git存储或Cloud Bus组件,单应用接口即可完成所有配置中心功能;
  • 遵循开源精神,ACM作为Nacos的云上实现,用户无需额外付费即可使用全部功能。

Spring Cloud用户可以基于Spring Cloud Config提供的接口将Spring Cloud应用的配置管理无缝迁移到ACM上,大幅度提升基于Spring Cloud框架的微服务应用的配置管理敏捷性。此外,相比于Spring Cloud Config,ACM还拥有多项实用功能,例如,云上配置安全合规,配置灰度发布和回滚等。

如何快速部署ACM

使用Spring Cloud的用户在阿里云上如果要从Spring Cloud Config切换成ACM方案,在程序业务层代码无需任何改动,原生@Value标签直接有效。用户仅仅需要改动Spring Cloud应用的两个编译配置文件即可。

1、修改配置文件

在 bootstrap.properties中添加ACM的连接地址和认证信息,示例如下。其中,endpoint、namesspace、accessKey和secretKey等参数在ACM控制台上可以直接获取。

指定spring.application.name和spring.coud.nacos.config.file以后,将决定ACM控制台上配置名,如上例中,配置名为com.alibaba.nacos.example.properties。

2、在 pom 中添加相关的nacos starter依赖

如下图所示。

以上两处修改完成之后,重新打包编译Spring Cloud程序,即可将配置管理转为ACM托管。

Spring Cloud 代码和配置变更实例

以Spring Cloud代码示例为例,/echo 接口将返回动态配置参数 configValue 的值。

将以下代码片段示例打包运行,并在对应ACM控制台上添加配置,设置对应配置名DataID,并点击发布。

最后在本地运行curl命令,假设http监控端口为8080:

则将返回:

返回true值后,即配置成功。详细的程序实例,可参照[ACM官方文档]()。

 

原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520492.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术和商业的碰撞,谈阿里云与天猫双11这十年

2009年,发生了两件看似不起眼的事。 初春刚过,阿里云在北京一栋没有暖气的写字楼写下了飞天第一行代码。 同年11月11日,淘宝商城启动了一个叫做双11的促销活动。 谁也没想到,多年以后他们会是现在这模样。 前传 2007年淘宝的…

windows环境 wildfly-10.1.0.Final 安装、配置、部署

文章目录一、下载、解压、配置1. 下载Wildfly2. 解压,成功得到文件夹。3. 配置环境变量4. 添加管控台用户5. 启动并登录管控台测试6. 管控台页面简介7. 修改默认端口由于Wildfly是依赖与Java的Jdk的,所以在这之前要先安装JDK。一、下载、解压、配置 1. …

揭秘 | 双11逆天记录背后的数据库技术革新

每一个数字背后 都需要强大的技术支撑 Higher, Faster, Smarter 是我们不变的追求 技术无边界 创新无止境 ▽ 关于数据库的双11 也许你还想知道 ▽ 2135亿!2018 双11阿里数据库技术战报“双11”十年记 阿里数据库演绎变迁三部曲 原文链接 本文为云栖社区原创内容…

重磅!腾讯助推十亿级节点图计算进入分钟级时代;沈向洋离开微软;阿里:拥有超6000项已授权专利,涉及云、AI等领域……...

戳蓝字“CSDN云计算”关注我们哦! 嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周五第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

2135亿背后的双11项目协作怎么玩?

2018天猫双11已经收官,2135亿元的成交额再度刷新纪录,这是一场阿里巴巴经济体的深度协作。 在这个大协作项目中,项目协作难题难以想象:如何保证众多部门、百个核心产品、千个垂直项目、几千人的的高效协作?如何在双11…

下一代大数据处理引擎,阿里云实时计算独享模式重磅发布

11月14日,阿里云重磅发布了实时计算独享模式,即用户独享一部分物理资源,这部分资源在网络/磁盘/CPU/内存等资源上跟其他用户完全独立,是实时计算在原有共享模式基础上的重大升级。 独享模式优点更加突出 1、UDX开放:实…

刷爆了!李彦宏:这类程序员我给100万!你怎么看?

从2017年开始,人工智能便波澜不断,无论是从BAT高调布局AI,还是从年薪50万招聘AI应届生,炽手可热形容AI工程师一点都不过分。百度推出“少帅计划”,针对30岁以下的深度学习科学家,开出100万以上年薪!阿里巴巴…

Element-UI中Cascader 级联选择器使用

Element-UI的级联组件官方文档 <el-cascaderv-model"value":options"options":props"{ expandTrigger: hover }"change"handleChange"></el-cascader>说明&#xff1a; options:绑定数据源 props:数据配置项 v-model“val…

DRDS SQL 审计与分析——全面洞察 SQL 之利器

背景 数据库存储着系统的核心数据&#xff0c;其安全方面的问题在传统环境中已经成为泄漏和被篡改的重要根源。而在云端&#xff0c;数据库所面临的威胁被进一步的放大。因此&#xff0c;对云数据库的操作行为尤其是全量 SQL 执行记录的审计日志&#xff0c;就显得尤为重要&am…

机器学习:从入门到晋级

目前&#xff0c;人工智能&#xff08;AI&#xff09;非常热门&#xff0c;许多人都想一窥究竟。如果你对人工智能有所了解&#xff0c;但对机器学习&#xff08;Machine Learning&#xff09;的理解有很多的困惑&#xff0c;那么看完本文后你将会对此有进一步深入理解。在这里…

漫画 | 面试的我 VS 真实的我

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff5c;纯洁的微笑、孤独烟责编&#xff5c;阿秃“面试造火箭&#xff0c;入职拧螺丝&#xff01;”已经是各大互联网公司招聘的常态&#xff0c;为了应对如今越演越烈的面试形势&#xff0c;程序员一个个都变成了表演大师…

Visual Studio Code Vue代码片段 总览

文章目录一、模板篇1. 初始化.vue 文件模板2. template 作用域插槽模板二、响应提示篇1. error 响应 &#xff01;200提示2. success 响应 200提示三、axios请求篇1. axios get 请求2. axios post 请求3. axios put 请求4. axios delete请求四、事件篇…

一个案例彻底弄懂如何正确使用 mysql inndb 联合索引

有一个业务是查询最新审核的5条数据 SELECT id, title FROM th_content WHERE audit_time < 1541984478AND status ONLINE ORDER BY audit_time DESC, id DESC LIMIT 5; 查看当时的监控情况 cpu 使用率是超过了100%&#xff0c;show processlist看到很多类似的查询都是处…

为你的AliOS Things应用增加自定义cli命令

在日常嵌入式开发中&#xff0c;我们经常会用串口命令来使设备进入某种特定的状态&#xff0c;或执行某个特定的操作。如系统自检&#xff0c;模拟运行&#xff0c;或者进入手动模式进行设备点动。linux下有强大的shell工具&#xff0c;可以让用户和片上系统进行交互&#xff0…

4________请拖拽到此区域5________请拖拽到此区域_5分钟学会:蒙版与通道(剪贴蒙版)...

剪贴蒙版可以用一个图层中包含像素的区域来限制它上层图像的显示范围。它的最大优点是可以通过一个图层来控制多个图层的可见内容&#xff0c;而图层蒙版和矢量蒙版都只能控制一个图层。1、实例&#xff1a;创建剪贴蒙版颜回&#xff1a;5分钟学会&#xff1a;蒙版与通道 实例&…

一场高质量的技术盛会怎样炼成?「2019中国大数据技术大会」即将来临,邀您共赴!...

2019年12月&#xff0c;一场轰动国内产业界、学术界、科研界及投资领域的顶级科技盛会即将拉开帷幕&#xff0c;它涵盖大数据、人工智能、云计算、AIoT、金融科技、智能制造等十几个前沿领域的热门话题。在过去十二年里&#xff0c;这场盛会从最初仅 60 余人参加的技术沙龙到如…

在Developerkit开发板上运行blink例程

本文将介绍怎么样在VScode环境下&#xff0c;将AliOS Tings提供的blink例程在Developerkit开发板上运行起来。 DeveloperKit开发板 在例程中分别用到两个led和一个按钮&#xff0c;上图中用红色的框标识出来。例程正确运行后&#xff0c;会有一个LED按1s的周期闪烁&#xff0c…

阿里下一代云分析型数据库AnalyticDB入选Forrester云化数仓象限

前言 近期, 全球权威IT咨询机构Forrester发布"The Forrester Wave: CloudData Warehouse Q4 2018"研究报告&#xff0c;阿里巴巴分析型数据库(AnalyticDB)成功入选。 AnalyticDB作为阿里巴巴自主研发的PB级实时云数据仓库&#xff0c;全面兼容MySQL协议以及SQL:200…

俄罗斯互联网的BAT

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff5c;挖数责编&#xff5c;阿秃1961年&#xff0c;尤里米尔纳 出生在莫斯科一个犹太人家庭&#xff0c;他的父亲是一名经济学家&#xff0c;母亲是一名医生&#xff0c;他儿时的梦想是成为科学家。高中毕业后&#xff0c…

fiq中断的入口地址_嵌入式技巧:ARM的三种中断调试方法介绍

嵌入式软件开发流程参照嵌入式软件的开发流程。第一步&#xff1a;工程建立和配置。第二步&#xff1a;编辑源文件。第三步&#xff1a;工程编译和链接。第四步&#xff1a;软件的调试。第五步&#xff1a;执行文件的固化。在整个流程中&#xff0c;用户首先需要建立工程并对工…