展开

关键词

一、定义 (又名金丝雀)是指在黑与白之间,能够平滑过渡的一种式。 可以保证整体系统的稳定,在初始的时候就可以现、调整问题,以保证其影响。 ? 二、实现思路向 1、在代码中做。 多套(隔离的)线上环境,接入层针对不同用户转到不同的环境中 两种的优缺点: 优点 缺点 在代码中做 灵活,粒细;一套代码(环境)运维成本低 逻辑侵入代码 在接入层做 无需(少)侵入代码 ;风险小 多套线上环境,运维成本高 灵活的一般需要在接入层实现,具体就是自定义负载均衡策略实现。 例:略 四、dubbo说明 Dubbo架构 ? Dubbo服务调用过程 ?

8.3K41

前端落地

一个大型的前端项目在时,都会采取策略。第一次听同事说的时候,还是停留在疑惑阶段,对这个词不了解,后续做了一些功课,才明白的意义。 前言 前段时间在面试的时候遇到过前端相关的问题,刚好在之前公司有设计过前端,这套也在多个系统上得到过验证了,最近有时间整理,现在也拿出来和大家交流下,在结尾也给大家留下了一些的代码实现 、令牌算法等 什么是 将某个功能(逐渐放量)给特定线上人群,避免新功能全量上线带来的风险 上白话文,某项目当前处于1.0版本,但是想更新一个1.1版本,1.1版本内测没有问题了,但是由于改动了关键的功能 实现这种场景效果,就是。 什么是规则? 1.0版本 常见 各式各样,既有多样就有对比,没有最好,只有最合适自己的业务场景,这里给大家介绍几种,以便大家做比较选择 1.

28150
  • 广告
    关闭

    什么是世界上最好的编程语言?丨云托管征文活动

    代金券、腾讯视频VIP、QQ音乐VIP、QB、公仔等奖励等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Dubbo服务治理之(版本控制影响范围)

    微信公众号:[中间件兴趣圈] 作者简介:《RocketMQ技术内幕》作者 背景 背景:基于Dubbo服务的治理,是否可以支持业务级别的、是否基于业务参数的路由转。 的请求转到新版本服务器,其他合作伙伴还是转到旧版,实现业务级别的,控制新版本的影响范围。 理论基础 Dubbo的服务调用原理图: ? 服务的,其目标是希望根据请求,某些请求走新版本服务器,某些请求走旧版本服务器,其本质就是路由机制,即通过一定的条件来缩小服务的服务提供者列表,正好与Dubbo的Router相吻合。 总结 上述展示了Dubbo服务基于业务,以及基于合作伙伴的服务隔离机制(根据服务调用业务参数来决定服务调用者的筛选)。

    4.7K30

    ,对于大厂来说是必不可少的,对于我这种从来没有过的,并不是很清楚,估计也有很多人不知道这个东西。以前只是直到,这次稍微了解一下。 是指新版本或者新功能通过一定策略选取一些用户,让他们先使用,通过使用情况对功能、性能、稳定性等指标评估是否扩大范围直至全面开始到结束期间的这一段时间,称为期。 如果是客户端的,应该是可以按照用户逐渐推送更新安装包。而服务端的则会相应容易一些,毕竟是在后台实现。 现在有专门的模式A/B测试,通过业务代码区分流量访问不同代码。 除了代码层面之外,对服务这块要求还是蛮大的,不同于预是直接让线上用户参与,而一般预到线上,由测试人员进行测试。 当然,会使用的,一般来说都是千万级别用户的项目了,虽然很想使用,但还是需要考虑实际场景,也希望以后能有机会使用。 (完)

    36930

    浅析 定义 就是已一种平滑过渡的式来,通过切换线上新旧版本之间的路由权重,逐步从旧版本切换到新版本;比如要上线新功能,首先只是更新少量的服务节点,通过路由权重,让少部分用户体验新版本 一个系统往往有接入层比如nginx(Openresty),网关层比如zuul,以及服务层比如各种rpc框架;在这几层都有路由功能,也就是说这几层都可以做;接入层可以使用nginx+lua来实现 ,网关层zuul可以结合ribbon来实现,rpc框架如dubbo本身提供了路由功能可以直接做处理;下面看看具体如何去实现; 接入层 接入层我们这里使用功能更强大的Openresty,然后使用 :旧路由规则 测试 启动zookeeper,然后分别启动两台生产者,启动消费者时通过修改tag然后观察路由; 总结 本文分别从接入层,网关层,服务层这三层简要的介绍了通过路由规则来实现;已每层比较典型的中间件来介绍具体如何去实现简单的 ;总体来说就是使用中间件的路由功能,动态加载外部自定义的一些路由策略脚本,以此来达到的目的。

    46030

    1、什么是 以下是百词条的解释: (又名金丝雀)是指在黑与白之间,能够平滑过渡的一种式。 可以保证整体系统的稳定,在初始的时候就可以现、调整问题,以保证其影响。 3、常用的式有哪些 1、按机器 ? 线上有多台机器,先将新功能代码部署到其中的1台或多台机器,然后绑定到这些机器进行测试,测试完没问题再部署到所有机器。 打个比,我们要做一个加密数据库字段的功能,先判断当前用户是否,如果是则将其数据加密,否则不加密。 4、例分析 我们以一个实际的例子来分析如何做。 这种操作会比较复杂些,配置用户可能需要分几批,如果配置中心等基础服务都上来了,操作还好,不然就得一台一台机器人肉了~ 另外这种对业务侵入性比较大,如果每个项目都需要这么实现,工作量就比较大

    84261

    一、

    一、   是一种式,也叫金丝雀,起源是矿工在下井之前会先放一只金丝雀到井里,如果金丝雀不叫了,就代表瓦斯浓高。原因是金丝雀对瓦斯气体很敏感。 的做法是:会在现存旧应用的基础上,启动一个新版应用,但是新版应用并不会直接让用户访问。而是先让测试同学去进行测试。 代表是否开启功能 nginx.ingress.kubernetes.io/canary-by-cookie: cookie 的 key。当 key 值等于 always 时,生效。 header去判断是否为用户,再决定是否返回版本服务。    二、滚动   滚动,则是我们一般所说的无宕机。其式如同名称一样,一次取出一台/多台服务器(看策略配置)进行新版本更新。

    8520

    蓝绿部署、滚动对比总结

    本文将对目前常用的部署做一个简单的总结。 蓝绿(Blue/Green Deployment) 1. 定义 蓝绿部署是不停老版本,部署新版本然后进行测试。 1. 定义 是指在黑与白之间,能够平滑过渡的一种式。 可以保证整体系统的稳定,在初始的时候就可以现、调整问题,以保证其影响。 2. A/B Testing A/B 测试是用来测试应用功能表现的法,例如可用性、受欢迎程、可见性等等。 3.金丝雀 我们平常所说的金丝雀部署也是的一种式,在原有版本可用的情况下,同时部署一个新版本应用作为「金丝雀」服务器来测试新版本的性能和表现,以保障整体系统稳定的情况下,尽早现、调整问题 除此之外还可以设置路由权重,动态调整不同的权重来进行新老版本的验证。 优势和不足 优势 用户体验影响小,过程出现问题只影响少量用户。

    1.2K20

    dubbo源码解析-详解router

    .因此本篇用的例子来做前期的铺垫 先看看百百科的概念 是指在黑与白之间,能够平滑过渡的一种式。 AB test就是一种式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。 可以保证整体系统的稳定,在初始的时候就可以现、调整问题,以保证其影响。 说人话就是,你应用的时候,不停止对外的服务,也就是让用户感觉不到你在.那么下面演示一下 1.首先在192.168.56.2和192.168.56.3两台机器上启动Provider,然后启动 如果看过我前两篇dubbo源码解析dubbo源码解析-集群容错架构设计和dubbo源码解析-directory就明白,我的分析过程都是以官文档为依据,所以这个问题的答自然也在官文档.下面引用一段官网文档的描述

    46130

    Dubbo源码解析 —— Router

    .因此本篇用 的例子来做前期的铺垫 先看看百百科的概念 是指在黑与白之间,能够平滑过渡的一种式。 AB test就是一种式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。 可以保证整体系统的稳定,在初始的时候就可以现、调整问题,以保证其影响。 说人话就是,你应用的时候,不停止对外的服务,也就是让用户感觉不到你在.那么下面演示一下 1.首先在 192.168.56.2和 192.168.56.3两台机器上启动 Provider, 如果看过我前两篇dubbo源码解析dubbo源码解析-集群容错架构设计和dubbo源码解析-directory就明白,我的分析过程都是以 官文档为依据,所以这个问题的答自然也在官文档.下面引用一段官网文档的描述

    75160

    蓝绿、滚动等部署,这些你必须懂!

    本文将对目前常用的部署做一个简单的总结。 蓝绿 (Blue/Green Deployment) ---- 〓定义 蓝绿部署是不停老版本,部署新版本然后进行测试。 〓定义 是指在黑与白之间,能够平滑过渡的一种式。 可以保证整体系统的稳定,在初始的时候就可以现、调整问题,以保证其影响。 ▼结构图 ? 〓金丝雀 我们平常所说的金丝雀部署也是的一种式,在原有版本可用的情况下,同时部署一个新版本应用作为「金丝雀」服务器来测试新版本的性能和表现,以保障整体系统稳定的情况下,尽早现、调整问题。 除此之外还可以设置路由权重,动态调整不同的权重来进行新老版本的验证。 〓优势和不足 ▼优势 用户体验影响小,过程出现问题只影响少量用户。

    88110

    通用规则平台的设计与应用

    存在以下痛点: 商品审核规则不够灵活,只支持校验阈值的快速变更 更改依赖代码修改,变更周期长 回归测试流程繁琐,不支持 2.2 目标 ? 全流程配置化避免了代码的变更,通过规则的简化了流程,并且一定程降低了可能导致的风险。 三、整体设计 ? 整体分为2个大的模块:实时数据的聚合查询、规则执行系统。 3.1.1 数据源 数据源接入式有 dubbo 接口、http 接口。其中,dubbo 使用泛化调用的式实现,dubbo 数据源配置服务名、法名和入参模板,调用业务。 3.2.3 规则流程 配置化导致了变更的便捷。但是便捷的流程如果没有可靠的保障,频繁变更之下就很容易出错。但是一个好的流程规范虽不能完全避免错误,但可以在一定程上减少错误。 ? 四、总结 配置化的规则替代了硬编码的校验逻辑,减少了修改规则代码维护的成本,使原本的规则变更周期从一周的修改测试变成了实时更改。同时规则的也使验证变得简单。

    64130

    互金平台的三段式探索与实践【转载】

    经过选型,我们选用更灵活的权重调节,通过Dubbo-Admin对需要下线机器的APP应用接口权限设置为0。 ?   图8 2 实践 通过之前的平滑和小范围验证的摸索,开始进行实践之路。 ,我相信大家对这个词都有各自的理解和体会,它也有很多相似的概念或变体。 通过这种式,我们即完成在不需要停服的情况下,对线上APP进行及验证,对应的各基础组件截图如下: 配置中心Disconf:通过版本来对应GROUP的功能 ?   细心的同学一定现了,前面讲的流程,应该是有一定先决条件的,体现在以下几个面: 数据层的变化导致新老版本无法兼容的,不能使用。 再次,如果需要长时间来验证环境,线上会同时存在两个甚至以上的版本,不利于运维维护,且监控面需要加强。 最后,能否利用式,在线上进行流量回放及全链路压测,也是一个后续摸索的话题。

    51130

    关于

    能带来什么样的好处呢?可以让你少伤害一部分用户啊~如果出了问题,回滚或者对影响到的用户进行补偿都很便(毕竟钱能解决的问题都不是问题,但规模太大的时候补偿手段就不好使了。 这样说的话可能有些人会提出异议,我们在做代码的时候先一台机器,然后再十台,然后一百台这样的,似乎是叫小流量上线,这个和有区别么? 两者还是有一些区别的,小流量上线一般做的是系统的彻底升级,和不一样。也即是前面提到的,期间,线上的系统两套代码在同一台新的机器上也同时存在。 一般人都比较熟悉的例可能是微软的操作系统升级吧,其实腾讯qq或者微信也差不多。不过说到操作系统升级,感觉还有另外的一层意思。可以控制用户流量对网络或者系统的负载的影响。 继续来说互联网公司的系统。 一般的都会有一些策略,其实就是分类/桶策略。

    1.2K30

    游戏

    ,蓝绿部署、滚动部署、、金丝雀。。。 整个游戏的链条上,似乎大家都已经习惯,开习惯,玩家也习惯 习惯麻痹了一切,没有提出更好的策略,大家都这么玩啊,无所谓啦~ 细思极恐,我们应该,也需要做得更好 /金丝雀 是在原有版本可用的情况下 /金丝雀由以下几个步骤组成: 准备好部署各个阶段的工件,包括:构建工件,测试脚本,配置文件和部署清单文件。 从负载均衡列表中移除掉“金丝雀”服务器。 在之前的架构图中,稍作修改,在玩家与Gameserver之间增加一层ha-proxy,这样就有了的基础 玩家不再直接与game-server直连,而是与ha-proxy 透明性 对玩家来说,版本就是透明的 结论 对于以上,不论是哪一种实现式,仁者见仁,条条大路通罗马。 也可能你觉得这种想法本身就是个多余。 能卖1块钱的豆腐,为什么要卖5毛?

    23530

    与ABtest

    蓝绿 [zouhf7hpk5.png? 1650518920&q-header-list=&q-url-param-list=&q-signature=3f398079c973505209591401cb9401008dd76a12] 滚动 1650518935&q-header-list=&q-url-param-list=&q-signature=f2a6ceb02a224f84827c94410ec3fd6b3ca71073] 金丝雀/ q-header-list=&q-url-param-list=&q-signature=f1e00c1938c3f637f272370811873e986e768d32] 实际使用过程中往往是AB测试+结合使用 微服务中实现: provider 自定义元数据来区分服务版本 1.通过网关中filter进行路由, 2.服务间调用不通过网关时,通过重写Ribbon中路由接口, 用户id通过切面拦截请求,存储在ThreadLocal

    12860

    Dubbo路由功能实现及源码分析

    是实现新旧版本平滑过渡的一种式,即让一部分服务更新到新版本,如果这部分服务没有什么问题,再将其它旧版本的服务更新。 而实现简单的我们可以使用版本号控制,每次都更新版本号,新更新的服务就不会调用旧的服务提供者。 较复杂的场景可以由版本号加路由功能实现。 起一次RPC调用都是先经过路由过滤,再到负载均衡选出最终调用的服务提供者起调用。 标签配置支持两种: 条件路由。支持以服务或Consumer应用为粒配置路由规则。 标签路由。 以Provider应用为粒配置路由规则。 本篇只介绍标签路由的使用及实现 dubbo版本:2.7.3 使用路由功能实现区域隔离 以区域隔离为例,介绍Dubbo路由功能的使用。 但dubbo使用模版法模式,将路由器链的调用逻辑封装在了抽象类AbstractClusterInvoker,以实现通用逻辑的重用。

    1.4K20

    Dubbo2.7试用

    一、Dubbo介绍 Java开的同学相信对Dubbo都有了解,Dubbo是阿里开源的RPC/服务治理框架,以下是百的解释: Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架 Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程法调用,智能容错和负载均衡,以及服务自动注册和现。 ,可以作为蓝绿等场景的能力基础。 这个服务其中1台172.21.107.21,打了标签pre,后续Consumer调用时,只要带了pre的tag,就一定会调用到这台机;而没带tag的会调用到另1台机172.21.107.22,这样就可以实现了 三、 我们来看下如何通过tag路由做,假设我们的应用架构是这样的: ?

    39630

    有赞与蓝绿实践

    基于系统稳定性和快速业务迭代的综合考虑,业务应用开团队采取了新版本服务上线的式,即新版本服务并非全量到线上环境,而是少数几个实例进行验证,没有问题后再全量。 Nginx层; 提供完整的流量控制,除了上面提到的黑白名单和百分比流量控制策略,项目还将深挖业务需求,提供更丰富的动态流量控制策略; 与Ops运维管理系统打通,实现易于使用和管理的及其他服务治理产品 二、 2.1 什么是 ,是在生产环境稳定集群之外,额外部署一个小规模的集群,并通过流量控制,引入部分流量到集群,进行生产全量前的验证。 2.2 流程 下面从产品层面介绍一下有赞的流程,包括:开始、初始化、验证、取消或全量结束。 (1) 开始。 有赞在与蓝绿产品中,可观测性与可运维性面也做了不少工作。主要包括应用监控、事件通知、全局状态以及周期统计报表。下面介绍一下有赞蓝绿产品在可观测性与可运维性面的一些工作。

    1.1K20

    式|全链路||的探索与实践

    工行在分式系统建设面一直走在同业前列,积极探索分式全链路,致力于解决分式架构下跨应用、跨服务的全链路能力。 ? 业界传统 是业界一种规避风险的有效的手段,通常可以蓝绿部署、滚动等几种式实现。 1. 截至 2019 年,工行各项目主要通过滚动升级、蓝绿、业务开关三种式实施了。 工行于 2020 年上半年已支持分式全链路式,旨在复杂分式场景中,针对行内重点产品线、重点应用、公共支撑平台,形成统一的规范,为重点产品线提供了全链路能力的技术支撑。 图 6 服务框架路由 3)标签链路透明传递 在业务服务层,服务框架负责标签的传递。Dubbo 提供了优雅的隐式参数机制,便地传递上下游的一些标记和控制消息,而实现对业务无感的能力。

    44310

    相关产品

    • Mesh 微服务平台

      Mesh 微服务平台

      Mesh 微服务平台提供了下一代微服务架构-服务网格的解决方案。Mesh 微服务平台支持跨编程语言、不同部署方式的应用生命周期管理、精细化的服务治理、立体化监控能力,帮助大型企业客户解决编程语言不统一、部署方式不统一等架构转型的困难;支持强大的服务流量路由能力,帮助用户实现灰度发布、故障注入等业务场景。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券