热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于java:如何利用-集群流控-保障微服务的稳定性

简介:利用高可用服务AHAS(ApplicationHighAvailabilityService)是经阿里巴巴外部多年高可用体系积淀下来的云产品,以流量与容错为切入点,从流量管制、不稳固调用隔离、熔断降级、热点流量防护、零碎自适应爱护、集群流控等多个维度来帮忙保障服务的稳定性,同时提供秒级的流量监控剖析性能。

简介:利用高可用服务 AHAS (Application High Availability Service) 是经阿里巴巴外部多年高可用体系积淀下来的云产品,以流量与容错为切入点,从流量管制、不稳固调用隔离、熔断降级、热点流量防护、零碎自适应爱护、集群流控等多个维度来帮忙保障服务的稳定性,同时提供秒级的流量监控剖析性能。

作者:宿何

微服务的稳定性始终是开发者十分关注的话题。随着业务从单体架构向分布式架构演进以及部署形式的变动,服务之间的依赖关系变得越来越简单,业务零碎也面临着微小的高可用挑战。利用高可用服务 AHAS (Application High Availability Service) 是经阿里巴巴外部多年高可用体系积淀下来的云产品,以流量与容错为切入点,从流量管制、不稳固调用隔离、熔断降级、热点流量防护、零碎自适应爱护、集群流控等多个维度来帮忙保障服务的稳定性,同时提供秒级的流量监控剖析性能。AHAS 不仅在阿里外部淘宝、天猫等电商畛域有着宽泛的利用,在互联网金融、在线教育、游戏、直播行业和其余大型政央企行业也有着大量的实际。

流控是保障微服务稳定性最罕用也是最间接的一种管制伎俩。每个零碎、服务都有其能承载的容量下限,流控的思路非常简单,当某个接口的申请 QPS 超出肯定的下限后,回绝多余的申请,避免零碎被突发的流量打垮。市面上最常见的计划是单机维度的流控,比方通过 PTS 性能测试预估某个接口的容量下限是 100 QPS,服务有 10 个实例,则配置单机流控 10 QPS。但很多时候,因为流量散布的不确定性,单机维度的流量管制存在一些成果不佳的状况。

典型场景 1:准确管制对上游的调用总量

场景:服务 A 须要频繁调用服务 B 的查问接口,但服务 A 和 B 的容量存在差别,服务 B 约定最多给服务 A 提供总共 600 QPS 的查问能力,通过流控等伎俩进行管制。

痛点:若依照单机流控的策略配置,因为调用逻辑、负载平衡策略等起因,A 调用 B 达到每个实例的流量散布可能十分不均,局部流量较大的服务 B 实例触发单机流控,但总体限度量尚未达到,导致 SLA 未达标。这种不均的状况常常会产生在调用某个依赖服务或组件(如数据库拜访)的时候,这也是集群流控的一个典型场景:准确管制微服务集群对上游服务(或数据库、缓存)的调用总量。

典型场景 2:业务链路入口进行申请总量管制

场景:在 Nginx/Ingress 网关、API Gateway (Spring Cloud Gateway, Zuul) 进行入口流量管制,心愿准确管制某个或某组 API 的流量来起到提前爱护作用,多余流量不会打到后端系统。

痛点:如果依照单机维度配置,一方面不好感知网关机器数变动,另一方面网关流量不均可能导致限流成果不佳;而且从网关入口角度来讲,配置总体阈值是最天然的伎俩。

AHAS 集群流控

AHAS 集群流控能够准确地管制某个服务接口在整个集群的实时调用总量,能够解决单机流控因流量不平均、机器数频繁变动、均摊阈值太小导致限流成果不佳的问题,联合单机流控兜底,更好地施展流量防护的成果。

对于下面的场景,通过 AHAS 集群流控,无论是 Dubbo 服务调用、Web API 拜访,还是自定义的业务逻辑,均反对准确管制调用总量,而无关调用逻辑、流量散布状况、实例散布。既能够撑持数十万 QPS 大流量管制,也反对分钟小时级业务维度小流量准确管制。防护触发后的行为可由用户自定义(如返回自定义的内容、对象)。

AHAS 集群防护具备以下几大劣势:

场景丰盛:全面笼罩从网关/Mesh 入口流量准确防护、Web/RPC 服务/SQL 调用准确流控,到分钟小时级业务维度流量管制的场景,反对数十万 QPS 量级;

低应用老本:无需非凡接入形式,开箱即用,疾速配置;

全自动管控与运维:自动化管控与调配 token server 资源,自动化运维能力保障可用性,用户无需关注服务端资源筹备与调配,只需关注规定配置与业务流程;

低性能损耗:性能模式下对业务链路齐全无时延减少,准确模式对业务链路的 RT 损耗管制在 3ms 之内,用户可放心使用;

配套的可观测能力,实时理解接口稳定性与规定失效状况。

上面咱们就来用一个示例来介绍一下,如何疾速将利用接入 AHAS 来玩转集群流控能力,保障服务稳定性。

疾速玩转 AHAS 集群流控

第一步,咱们将服务或网关接入 AHAS 流量防护。AHAS 提供多种疾速便捷的无侵入接入伎俩:

AHAS 流量防护反对 Java/Go/C++/PHP 等多语言原生接入,以及 Nginx/Ingress 网关接入和 Mesh 接入;Java 利用反对全方位的 20+ 种微服务框架/组件:

Web 服务端:Spring Web/Spring Boot/Spring Cloud/Tomcat/Jetty/Undertow

Web client:OkHttp/Apache HttpClient

RPC:Dubbo/Feign/gRPC

DAO/缓存:MyBatis/Spring Data JPA/Memcached/Jedis client

MQ consumer:RocketMQ client/Kafka client/RocketMQ client

API Gateway:Spring Cloud Gateway/Zuul 1.x

Reactor 框架

接入 AHAS 胜利后,只有触发服务调用/接口拜访,即可在 AHAS 控制台看到本人的服务,并能够在监控页面看到本人的接口:

第二步,咱们在利用左侧菜单的“集群流控-集群配置”页面,开启集群流控性能。测试利用咱们能够开启“试用”集群,不同的集群规格能够承载不同的 QPS 量级:

第三步,咱们在实时监控页面找一个接口,点击右上角的“+”号,新增流控规定。以下示例中,咱们对 /doSomething 这个接口配置集群流控规定,这个接口总的访问量每秒钟不超过 200 次。规定状态为“开启”,代表新增后实时失效。

点击下一步,咱们还能够给抉择的 Web/RPC 调用配置防护规定触发后的解决逻辑,如自定义返回值。最终配置实现后,咱们点击新增按钮,这条规定就会失效到每个节点。

配置结束后,咱们能够向利用集群中不同机器发动肯定数量的该接口申请,能够发现每秒钟超过 200 个申请后会主动返回咱们在规定中预设好的返回行为;同时控制台实时监控页面也能够看到,多余的流量被回绝,接口每秒钟通过的总量级安稳在 200 QPS:

通过几步简略的配置,咱们就能够疾速体验 AHAS 集群流控给业务流量带来“如丝般顺滑”的爱护能力;同时最近 AHAS 还新上线 Nginx/Ingress 网关入口流量防护、Web 申请参数流控 等外围性能,欢送大家点击浏览原文,在返回 AHAS 控制台进行疾速体验。

原文链接
本文为阿里云原创内容,未经容许不得转载。


推荐阅读
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • golang反射,golang反射性能
    本文目录一览:1、关于反射2、尝试用golan ... [详细]
  • 如果说以比特币为代表的货币区块链技术为1.0,以以太坊为代表的合同区块链技术为2.0,那么实现了完备的权限控制和安全保障的Hyperledger项目毫无疑问代表着区块链技术3.0 ... [详细]
  • Retrofit+Rxjava网络封装DEMO下载地址框架使用说明一.项目中使用到的三方库com.squareup.retrofit2:retrofit ... [详细]
  • ASP.NET CORE 简介
    ASP.NETCore是一个跨平台的高性能开源框架,用于生成启用云且连接Internet的新式应用。使用ASP.NETCore,您可以:生成Web ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 09 性能优化网络优化
    如何优化一个网络请求呢?相信大家在面试的时候可能会被问到这个问题。今天我其实就是讲述下我知道的一些简单的优化方式,可以帮助大家在面试的过程中得到点基础分数。 ... [详细]
  • 毕业设计做的项目,答辩完了,就共享出来。波尼音乐是一款开源Android在线音乐播放器。 ... [详细]
author-avatar
mobiledu2502891023
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有