百度APP基于Istio实现基础架构升级 - lightning talk - MichaelXu。 多数模块对单点异常,慢节点等异常缺乏容忍能力,推动每个模块独立修复,成本高,上线周期长。 ## 高级架构能力能否多语言、多框架支持? ➢ 因重试导致雪崩,底层RPC框架需要重复建设来定制动态熔断能力。 ➢ 升级一级服务建设中,发现很多模块单点、多点故障不能容忍,能否低成本解决? ## ● 运维架构能力是否具备可移植性?是否能低成本复制新的产品线? 比如常用运维降级、止损能力各个产品 构故障韧性能力) 治理效率方面(提升一级模块建成效率,二级模块预案能力) ● 周边生态方面(流量复制,稳定性工程,动态调参,服务可观测性) ● 覆盖率方面(百度APP100%核心模块,流量占比>79.5%) ## 收益介绍-防雪崩&长尾 ## 防雪崩能力:动态BackupRequest  ## 业务价值 降低业务因Redis回退引发的雪崩问题。(业务层RPC框架Retry策略托管到Mesh,通过平响分位值动态抑制BP请求) ## Mesh价值 1. 业务无需代码改动即可开启,在线调整backup超时分位值、熔断阈值。 2. 支持动态调整配置参数,对接智能调参系统。 ## 业务价值 LocalityAware负载均衡策略以下游节点的吞吐除以延时作为分流权值,优化长尾平响问题。0 码力 | 9 页 | 2.20 MB | 1 年前3
ServiceComb 介绍大量老旧系统代码,如何支持其服务化改造? • 云化应用面临的监控已经分布调用追踪问题? ## ServiceComb 编程模型 (同步、异步、Reactive...) 运行模型 服务发现 熔断 负载均衡 配置 跟踪 通信模型 (序列化、传输协议) 服务契约 (OpenAPI) ## 为什么需要服务契约 • 作为服务消费者 - 需要明确知道如何调用服务? - 需要知道服务调用参数有哪些?0 码力 | 16 页 | 1.26 MB | 2 年前3
Dynamic Model in TVM0 码力 | 24 页 | 417.46 KB | 1 年前3
字节跳动云原生微服务架构原理与开源实践 CloudWeGo 技术白皮书 2024sidecar 即标准技术方案; 该 Service Mesh 的运维控制面可以发布多种不同类型的资源。但凡需要集中发布的资源,例如 Mesh 的 sidecar,例如 WebAssembly 的资源、动态库,都可以通过运维控制面进行发布。 当前字节跳动 Service Mesh 的主要特点可以用4个关键词概括: 全功能。除了前文提到的RPC框架、HTTP框架,字节跳动的Service M 17年的微服务形态称为蜕变期。 2018年,微服务最基本的东西都有了,但各个方面不成熟,一些综合能力在快速发展。这一时期开启了服务网格的自研,很大程度上推进了微服务的现代化。在服务网格的加持下,诸如动态过载保护、染色调度等能力快速实现并推广,到2020年实现了各项功能的大发展。我们将2018~2020年的微服务形态称为发展期。 2021年后,想要构建一个全新的治理功能不是很容易了,更多的工作是放 蜕变 部分框架可配置黑名单拒绝 具备了一定的调度能力,如机房调度、基础泳道调度 具备限流、熔断、超时等基本能力 开始有时序分析参与报警开始构建Tracing 发展 具备了白名单、服务身份鉴定的能力 构造了染色调度、就近调度、分片调度等高级能力,解决业务自定义路由、大服务调度需求 构建了动态负载均衡、动态过载保护等自适应稳定性保障,以解决实例能力差异、雪崩等问题 复杂的日志收集判定自动的巡检能力0 码力 | 68 页 | 24.07 MB | 4 月前3
微服务架构实践-唯品会送到其他服务实例,可以增加用户请求成功率 ## 服务熔断 - 服务熔断状态一般分为三种,closed状态、open状态、Half-Open状态 - 熔断器默认处于closed状态即关闭 - 当一定时间内的失败率超过指定阈值,熔断器从closed状态进入open状态,此时客户端发起的服务调用会直接返回,不会再向服务端请求 - 当熔断器熔断一段时间之后(可以设置),此时会进入Half-open 态又转为open状态,如果调用成功率达标,则从Half-Open状态转为closed状态,服务端正常对外提供服务调用 close d 调用失败率超过阈值 调用 成功率达标 open 熔断一段时间 Half-Open 调用成功率不达标 ## 服务集群容错 - Failover,失败自动切换,当出现失败,重试其他服务器 - Failfast,快速失败,只发起一次调用,失败立即报错,通常用于非幂等性的写操作 自动降级 可以采用超时降级、失败次数降级、故障降级等,实现自动降级 ## 开关降级 开关降级,一般将降级开关存在分布式配置中心,需要进行降级操作时,在配置中心操作即可 ## 动态配置降级 在注册中心写入动态配置覆盖规则,通过服务降级临时屏蔽某个出错的非关键服务,并定义降级后的返回策略 - 当系统访问量超过预定的QPS阈值时,需要将一些非重要的、非核心的业务进行降级,暂停其对服务进行的调用0 码力 | 120 页 | 82.16 MB | 2 年前3
API7 ⽹关技术⽩⽪书控制面板以可视化形式操作网关,支持监控分析、日志审计、多租户管理、多集群切换、多工作分区等能力。 ### 1.1 技术架构 ### 1. 数据平面 数据平面用于接收并处理调用方请求,使用 Lua 与 Nginx 动态控制请求流量。当请求进入时,将根据预设路由规则进行匹配,匹配到的请求将被网关转发至对应上游服务。在此过程中,网关有能力根据预设规则中不同插件的配置,使用一系列插件对请求从进入到离开的各个阶段进行操作 6. 全动态能力 修改网关配置、增加或修改插件等,无需重启网关服务即可实时生效;支持动态加载 SSL 证书; ### 7. 扩展能力强 借助灵活的插件机制,可针对内部业务完成功能定制;支持自定义负载均衡算法与路由算法,不受限于 API 网关实现;通过运行时动态执行用户自定义函数方式来实现 Serverless,使网关边缘节点更加灵活; ### 8. 治理能力丰富 如故障隔离、熔断降级、限流 服务治理:API7 支持熔断、限流、限速、IP 黑白名单、故障隔离等能力,通过控制台可视化面板,可方便、清楚地完成相关功能设置; - 自定义插件:API7 内置了50多种插件,涵盖安全防护、流量控制、日志记录等各个分类,可满足绝大多数企业需求。对于特定业务,API7 目前支持 Lua、Java、Go、Python 编写自定义插件,且插件可以作用于流量进出的各个阶段。得益于全动态能力,新增、修改插件无需停机重启,可实时生效,避免中断业务;0 码力 | 19 页 | 1.12 MB | 2 年前3
降级预案在同程艺龙的工程实践-王俊翔 航班起降均为当地时间 ## 缺乏熔断设计  ## 交易故障 ## 缺乏降级设计 • 核心业务是否有损 ·弱依赖 - 熔断限流,有损服务 serviceA 弱依赖 熔断、限流 · 强依赖 - 备选服务,降级实现 用户请求 service serviceB 强依赖 降级 serviceC- 备选服务 serviceC 强依赖 ## 业界解决方案 - HYSTRIX Netflix开源的一款容错框架,支持多种降级熔断技术  • 可重用的逻辑 资源密集型部分 领域驱动设计 数据访问方式 936e4c395f448894f/p48_2.jpg) ## 集中配置管理 ## 配置信息的管理 与服务在同一个包中 使用隔离的配置文件 使用环境变量管理 ## 配置信息管理的挑战 • 动态更新配置信息 多实例间的同步 • 配置信息的版本管理 Message Broker  ·资源管理:中间件层集中动态管理调度 ·业务部署周期:天级 · 特征:微服务化实现进程级资源共享,业务敏捷 ·资源管理:应用层集中、动态管理和调度 ·弹性伸缩:全自动化、数据中心级(跨区域/DC/AZ) ·业务部署周期:DevOps交付模式,分钟~小时级 云原生 












