Alibaba Spring Cloud 十二 Nacos 灰度发布

使用nacos进行灰度发布 一、前言 本文,引入Discovery【探索】微服务框架搭建一个简单的灰度发布demo,Discovery微服务框架源码即在源码,里面根据不同的使用者,有很多demo。如下: Discovery【探索】微服务框架指南示例说明 对于入门级玩家,参考指南示例极简版,分支为simple。涉及到指南篇里的灰度路由和发布的基本功能,参考新手快速入门 对于熟练级玩家,参考指南示例精进版,分支为master。除上述《极简版》功能外,涉及到指南篇里的绝大多数高级功能 对于骨灰级玩家,参考指南示例高级版,分支为p. 阅读详情
AI摘要

在微服务架构中,灰度发布可降低上线新功能风险。Nacos本身无灰度发布一键功能,需借助其标签、分组、元数据与Spring Cloud生态实现。本文介绍了使用Nacos标签、Group/Namespace、配置中心实现灰度的方法,还提及结合Spring Cloud Gateway/Zuul动态路由,最后给出灰度发布实施建议。

在微服务架构中,灰度发布(也称“金丝雀发布”或“蓝绿发布”)可以帮助我们在上线新功能时,将流量逐步引入到新版本,从而减少大规模变更带来的风险。Nacos 本身提供了服务注册和配置管理的能力,但并不直接内置“灰度发布”一键功能。通常,我们需要借助 Nacos 的标签 / 分组 / 元数据 与 Spring Cloud 生态(如 Gateway、LoadBalancer 等) 共同实现灰度的效果。

下面从几个常见思路出发,介绍如何在 Nacos 上进行灰度发布。


1. 使用 Nacos 标签(Metadata)实现灰度

1.1 原理

  • 服务实例标签(Metadata):
    在微服务启动时,将实例的某些信息(如版本、环境)放入 Nacos 的 metadata 中。
    例如:
    spring:
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848
            metadata:
              version: v2  # 表示此实例的版本信息
    
  • 消费者端匹配标签:
    在调用其他微服务时,根据不同的元数据路由到对应版本的服务实例。
  • 灰度思路:
    部署一部分实例使用新版本(v2),另一部分使用旧版本(v1)。然后让调用端有选择地访问不同版本,从而实现灰度。

1.2 配置示例

(1) 在提供者服务中设置元数据

spring:
  application:
    name: product-service
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        metadata
Spring Cloud Alibaba Nacos 之 灰度发布(思路分享) 在netflix全家桶相继凉凉后,Ribbon组件确一直坚挺包括在Spring Cloud Alibaba Nacos中也在使用。其实要基于Nacos做灰度发布,也是在Ribbon上做手脚。 第一步扩展Metadata Predicate public abstract class DiscoveryEnabledPredicate extends AbstractServerPredicate ... 阅读详情

相关推荐

Spring Cloud Alibaba 面试题及答案整理,最新面试题

如果Nacos在配置的时间内未收到某服务实例的心跳,会认为该实例不可用,从服务列表中移除。Spring Cloud Alibaba的Dubbo更深入地集成了Spring Cloud生态,提供了与Spring Cloud组件的无缝对接。Nacos提供动态的配置服务,允许应用在运行时动态调整配置而无需重启,支持配置的版本管理和回滚,以适应持续集成和持续部署(CI/CD)的需要。当 Nacos 中的配置信息发生变化时,Nacos Config 客户端会自动获取最新配置,并可以动态地更新到应用中,无需重启服务。

知识极客 9302

Spring Cloud Alibaba 全链路灰度发布实战指南

配置 LoadBalancer@Beanname);核心灰度算法实现@Override// 从Header或ThreadLocal获取// 简化示例,实际从上下文动态获取。

一起修行,不孤单。这里有编程语言、开发工具、学习方法论和踩坑笔记。用简单的话说复杂的事,陪你从小白到进阶。周更干货,欢迎一起成长! 732

Alibaba Spring Cloud 十一 Nacos 服务注册、发现与配置管理中心

Nacos(Naming and Configuration Service)是阿里巴巴开源的服务注册、发现与配置管理中心,也是 Spring Cloud Alibaba 生态下的重要组件之一

空 892

Spring Cloud Alibaba gateway ribbon 自定义负载均衡规则。发散灰度发布,金丝雀测试等

上一篇介绍了,ribbon的组件。本篇要自己写一个灰度方案。其实就是一个很简单的思维扩散。 需求 前端header请求携带version字段。路由服务根据version去需要对应版本的服务集合,进行或轮询或hash或权重的负载。请求路由到服务上,如果还要调用下游服务,也按照version规则去路由下游服务器。前端未携带版本按照后端服务最高version版本进行路由。 分析如果自己动手写一个灰度方案...

qq_35809876的博客 3277

Nacos服务发现原理与Spring Cloud Alibaba集成实战

服务发现是微服务架构中实现动态寻址与流量调度的基础能力,其核心在于注册中心如何保障服务元数据的一致性、实时性与可治理性。Nacos凭借CP/AP可切换架构、Raft共识算法与丰富的服务元数据模型,超越传统AP型注册中心(如Eureka),支撑灰度发布、权重路由、故障隔离等高级治理场景。结合Spring Cloud Alibaba的深度封装,开发者可通过标准注解无缝接入gRPC推送、本地缓存、命名空间隔离等能力。本文围绕Nacos服务发现的通信协议(gRPC/Long-Polling)、数据同步机制(Raft

weixin_33805992的博客 373

【Spring Cloud Alibaba】基于Spring Boot 3.x 搭建教程

本教程主要介绍如何基于搭建一个微服务项目,适合熟练使用框架,并且有进一步尝试新版本及学习搭建微服务项目的同学。致力于提供微服务开发的一站式解决方案。该项目包含开发分布式应用微服务的必需组件,方便开发者通过编程模型轻松使用这些组件来开发分布式应用服务。依托,我们只需要添加一些注解和少量配置,就可以将应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。此外,阿里云同时还提供了SpringCloudAlibaba企业版。

m0_74825502的博客 1134

SpringCloud-Alibaba之Nacos共享配置、灰度配置

一个系统中微服务数量增加后,配置文件相应增加,多个配置文件中会存在相同的配置,那么我们可以将相同的配置独立出来,作为该系统中各个服务的共享配置文件,每个服务都可以通过Nacos进行共享配置的读取。配置加载的优先级spring.cloud.nacos.config.shared-dataids参数用来配置多个共享配置的Data Id,多个的时候用用逗号分隔。共享配置可以看到,spring.cloud.nacos.config.ext-config配置是一个数组List类型。

2401_83703835的博客 1006

Spring Cloud Alibaba 源码深度解析:Nacos 服务发现与 Sentinel 流控实现原理

在微服务架构中,服务治理是保障系统稳定性的核心,主要解决服务如何被找到以及如何被保护两大问题。服务发现通过注册中心实现服务的自动注册与发现,其底层通常采用心跳机制和长轮询推送来保证数据的最终一致性。流量控制则是通过实时统计请求指标并应用规则来防止系统过载,其中滑动时间窗口算法能有效平滑流量,解决临界突变问题。这些技术为构建高可用的分布式系统提供了基础保障。本文聚焦于 Spring Cloud Alibaba 生态下的两个关键组件:Nacos 实现了高效的服务注册与发现,其客户端通过周期性心跳维持实例健康,并

weixin_30425949的博客 497

Spring AI 与 Spring Cloud Alibaba 2025.0.0 兼容性缝合指南

Spring Boot 微服务中,大模型集成(如 Spring AI)与云原生基础设施(如 Spring Cloud Alibaba)的协同运行,依赖于配置加载时序、服务元数据契约和 Bean 生命周期的一致性。当 Spring Cloud Alibaba 升级至 2025.0.0,其基于 Spring Boot 3.3 的 BootstrapContext 重构与 Nacos 元数据强校验机制,会与 Spring AI 的自动装配逻辑产生时序冲突和初始化断点。典型表现为 ChatClient 初始化失败、

weixin_30588675的博客 310

Spring Cloud Alibaba微服务重构实战:从单体到微服务的渐进式演进

微服务架构是一种将单一应用程序拆分为一组小型、独立服务的软件架构风格,其核心原理是通过服务解耦实现独立部署、扩展和技术异构。这种架构的技术价值在于提升系统弹性、故障隔离能力和团队交付效率,尤其适用于应对高并发、快速迭代的业务场景。在工程实践中,面对单体应用的技术债务和性能瓶颈,采用渐进式重构策略是关键。通过领域驱动设计(DDD)划分服务边界,结合Spring Cloud Alibaba生态(如Nacos、Sentinel),可以在项目中期平滑完成架构升级。本文以Spring Boot单体应用重构为例,详细演

weixin_34068198的博客 370

微服务与云原生实战:Spring Cloud Alibaba 与 Kubernetes 深度整合指南

Spring Cloud Alibaba 与 Kubernetes 的整合为现代微服务架构提供了​​完整解决方案​​。通过 Nacos 实现服务发现与配置管理,Sentinel 实现流量控制,Seata 处理分布式事务,结合 Kubernetes 的容器编排能力,可以构建出高可用、高性能、易扩展的微服务系统。​​未来发展趋势​​​云原生深度融合​​:与 Kubernetes 生态更深度集成,如 Nacos Operator、Sentinel Operator​​Serverless 支持​。

2202_75574430的博客 1151

Spring Cloud Alibaba 全链路灰度发布实战

摘要:本文介绍了基于Spring Cloud Alibaba的全链路灰度发布实现方案。通过Nacos服务注册中心为实例打标,结合Spring Cloud Gateway实现流量标签识别和透传,利用自定义LoadBalancer策略完成标签匹配路由。文章详细演示了电商系统案例,包括环境配置、负载均衡策略实现、标签透传机制及测试验证方法。该方案支持灰度流量在调用链中全程隔离,并提供了权重路由、动态配置等优化方向,适用于微服务架构下的平滑发布场景。

wjianwei666的专栏 439

Spring Cloud Alibaba 的服务注册中心 Nacos 介绍

作者:禅与计算机程序设计艺术 1.简介 Nacos 是阿里巴巴开源的基于微服务的动态服务发现、配置和管理的服务中心,它不仅支持多数据中心和跨云环境,还支持 Kubernetes 和mesos 等容器管理平台。本文将从以下方面介绍 Nacos: 概念理解及功能特性

AI天才研究院 2859

基于Nacos元数据实现灰度发布,可以按照最小粒度灰度发布

使用方式 案例1: Nacos元数据配置 {"idDeptSign":"040101","ip":"192.168.1.2","springCloud":"register"} 前端请求头设置参数publicParam {"idDeptSign":"040101","ip":"192.168.1.2","idEmp":"12342134"} idDeptSign和ip值都相等,则会有灰度服务 案例2: Nacos元数据配置 {"idDeptSign":"040101","ip":"192.168.1.2","springCloud":"register"} 前端请求头设置参数publicParam {"idDeptSign":"040101","ip":"192.168.1.3","idEmp":"12342134"} ip不相等,所以不会走灰度配置 总结: 前端请求头的json内容key值如果和Nacos元数据json的key值相等,则value值必须相等,否则不走灰度服务。如果key值不相等,则不进行匹配

Win10环境借助DockerDesktop部署Open web UI集成DeepSeek

Win10环境借助DockerDesktop部署Open web UI集成DeepSeek,并借助DuckDuckGo实现联网查询

虎鲸不是鱼 1699

linux下redhat6.8(理论是都适用)安装oracle12c---详细教程

1、配置yum源 1)、删除Redhat自带的yum: (2)、上传centos的yum包,并按照顺序安装,所需的rpm包通过点击这里获取(放在oracle文件中的centos yum):上传到linux中 进行安装 yum包链接:https://pan.baidu.com/s/1TxciCWEd7d-d4kGoea0L1w 提取码:eufp `` --注意后面两个安装包一起安装 ## 3)、更改系统yum源: 编辑rhel-source.repo文件,将其中的$releas

z931407229的博客 1149

密码学小白必看:三大顶级会议论文下载与阅读指南(附完整资源链接)

本文为密码学初学者提供了系统获取和阅读三大顶级会议(Crypto、Eurocrypt、Asiacrypt)论文的实战指南。详细介绍了通过IACR官方渠道、ePrint预印本等权威资源免费下载论文的方法,并分享了高效筛选、精读核心章节及构建个人知识体系的具体策略,帮助读者快速切入密码学研究前沿。

weixin_28363123的博客 396

WPF实战:利用Live Charts实现高性能动态曲线可视化

本文详细介绍了如何在WPF中使用Live Charts实现高性能动态曲线可视化,特别适用于工业监控和金融分析等实时数据场景。通过增量渲染、内存复用和硬件加速等核心技术,Live Charts能够高效处理高频数据更新,显著提升图表流畅度。文章提供了从基础实现到工业级优化的完整解决方案,帮助开发者应对各种性能挑战。

weixin_29189373的博客 406

GIS数据处理-使用PostGIS+QGIS

GIS数据处理1-使用PostGIS+QGIS 介绍 这里我遇到了一个需求,需要将SQLite的.db数据库中GIS数据导出成shapefile文件 数据库的表结构如下所示,这里存储的是wkt格式的矢量数据 WKT与WKB格式介绍 OpenGIS 规范定义了两种表示空间对象的标准方式:Well-Know Text (WKT) 形式和Well-Known Binary(WKB) 形式。WKT 和 WKB 都包含矢量几何要素的对象类型和构成对象的坐标的信息。WKT可读性强,更方便阅读识别,而在实际数据传输和存

孙霸天的专栏 2528

C++如何实时监测另一个进程是否已经退出?(附源码)

调用WaitForSingleObject实时监测目标进程是否已经退出

dvlinker的技术专栏 8275

Openclaw 错误分析 与 解决方案 之:Selected model is at capacity. Try a different model, or wait and retry.

Openclaw 错误分析 与 解决方案 :Selected model is at capacity. Try a different model, or wait and retry.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 6421

history 历史命令记录功能如何防坏人(高级)

在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中。通过这个文件可以查询 shell 命令的执行历史,有助于运维人员进行系统审计和问题排查,同时在服务器遭受黑客攻击后,也可以查询黑客登录服务器的历史命令操作。但是黑客在入侵后,为了抹除痕迹,会删除 .bash_history 文件,这个就需...

墨痕诉清风的博客 1657

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: Alibaba Spring Cloud 十一 Nacos 服务注册、发现与配置管理中心
下一篇: Alibaba Spring Cloud 十三 Nacos,Gateway,Nginx 部署架构与负载均衡方案
十方来财
十方来财 新星创作者: 编程框架技术领域 新星创作者: 编程框架技术领域
博客等级 码龄14年 8358粉丝 346原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十方来财

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值