从 ChatGPT 被挤崩,浅谈如何做入口限流?

作者: 张斌斌:Nacos&Sentinel Committer 

最近 ChatGPT 很火,激起了社会广泛关注和学习热潮,记得上次我通宵学习 AI 知识还是 Goolgle 发布最新算法的时候。当时我考虑是不是要转行去搞 AI,不然就有被淘汰的风险,随着学完斯坦福大学的 AI 公开课,突然就释然了。我发现这个行业极少天才去演进算法,大部分人只是训练和调整参数运用到不同的场景。但是最近 ChatGPT 火了,又引起了我的焦虑和好奇,随即尝试挑战一下 AI 能力,问了几个问题。 

作为Nacos Committer,想看一下 AI 到底能否理解技术,所以问了一个带有感情色彩的问题,结果让人震惊。我布道 Nacos 也就是从开源定位、优势结构化的去分享,要知道结构化是专家级工程师的核心思维要求,AI 能达到专家级的思维水平了? 多尝试几次,结果每次都不一样,似乎越问越精简,最后居然能总结回答,太妙啦~ 

能够结构化按照定位、优势回答 

2cce32ab0a0580f94fb00461285077d9.png能够做提炼精简 

6df576e4aea2e0f9cb4fc44ca7ffb78a.png能够用总体来说-总结 

193cdf6c6f4e9176daf710e740aaefae.png

为了发挥程序员和测试的思维,我把电脑切成英文,看看他的回答是否专业,看到几次结果后,我笑了。看来也不是万能的嘛,但是想了一下,应该是 Nacos 海外影响力不够,所以结果不能很好命中。  

0e2dce3d786971fc4ae1378d5b26952c.png总的来说,ChatGPT 超出了预期,激发了我的热情。晚上睡觉的时候都在考虑怎么问 ChatGPT,想看看他是怎么回答的,要知道上一次有这么高热情还是谈恋爱的时候,哈哈~ 

继续提问。。 

ChatGPT 能自我认知吗? 但这次提问,居然崩了。。  

8c93a1e57fd908b8b1ea900046ac8f5f.png限流了。。我好奇的是,AI 也会限流?AI 能写限流代码吗?看来 Java 程序员这个工作还是能继续干下去的,哈哈。 

0a243dd1e139cfc8e1746de70197ba9f.png作为一名从事微服务架构和稳定性的程序员,我立马就想了 ChatGPT 限流用的是什么技术呢? 

  • 基于 IP 限流?  

我想基于 IP 限流是不能搞定的,因为 IP 是变化的,一定是跟采用了服务限流,背后需要采用类似 Sentinel 的服务级别的限流技术。  

  • 那限流是在入口做的,还是在后端应用,或者算法层面做的呢?  

猜测应该是在入口或者前端业务做的,因为这样能快速的构建入口高可用防线,类似 Higress+Sentinel 的开源组合。可以从入口快速进行服务级别的限流。 

  • 那为什么要限流呢? 是系统还是单体应用撑不住了呢? 还是不具备弹性水平扩容能力呢?是不是采用微服务+容器架构能够大幅提升并发能力,快速弹性伸缩呢? 

如果 ChatGPT 的后端已经云原生化,那么猜测是类似 Higress + Sentinel + Dubbo + Nacos + K8s 的技术栈,这样可以快速构建高并发、高可用、自动弹性的后端体系。(由于目前未从官方公开文档找到 ChatGPT 的后端架构,所以这里只是假设情况)  

作为云计算从业者,就在思考了,ChatGPT 的现象级爆火,让很多公司都羡慕不已,在这个信息大爆炸的时代,每个公司都有着在短时间迅速爆火的可能,在机遇到来时,能不能抗住流量洪峰,保证服务的质量,抓住这次机遇呢?如何快速构建高并发、高可用的微服务架构呢? 我初步构思了一个架构,仅供参考讨论:  

bb28da287d2ab4a02cc6b946b32b6c60.png那么如何结合云原生网关与服务治理来保障业务的稳定性与连续性呢?下面来为大家进行揭秘。 

全链路服务治理,全方位保障业务稳定性 

在分布式系统架构中,每个请求都会经过很多层处理,从入口网关再到 Web Server 再到服务之间的调用,再到服务访问缓存或 DB 等存储。在高可用防护体系中,我们通常遵循流量漏斗原则进行高可用流量防护。在流量链路的每一层,我们都需要进行针对性的流量防护与容错手段,来保障服务的稳定性;同时,我们要尽可能地将流量防护进行前置,比如将一部分请求的流量控制前置到网关层,这样可以避免多余的流量打到后端,对后端造成压力同时也造成资源的浪费。 

764ada996a1f4fa15a93b0e2888f5099.png

网关入口流控 

网关做高可用入口防护为什么重要?一言以蔽之,网关具备将大促的各种不确定性因素转化为确定性因素的能力,并且这种能力是不可替代的。分别从三个方面来看: 

第一点是应对流量峰值的不确定性,必须通过流控规则将不确定的流量变为确定。实现流量防护有个前提,承载这突发流量的服务仍能保持正常的 CPU 负载。业务服务模块即使实现了应用层的 QPS 流控,在瞬时高并发场景下,仍可能因为网络层大量的新建连接导致 CPU 猛涨,还没有到流控这道保险杠就崩溃了。业务模块应该专注在应用层业务逻辑上,若要通过扩容去应对其不擅长的网络层开销,所需的资源成本是相当高的。而网关作为业务流量入口的地位,决定了其必须擅长应对高并发的网络流量,并且这块性能也是衡量网关能力的一个重要指标,应对高并发的性能越强,所需的资源成本就越低,将大促流量从不确定变为确定的能力就越强。我们推荐在流量入口进行前置流量防护,提前粗粒度地限制一部分超容流量,避免多余的流量打到后端,对后端造成压力同时也造成资源的浪费。 

第二点是应对用户行为的不确定性,需要根据不同的大促场景,模拟用户行为进行多轮压测演练,提前发现系统的瓶颈和优化点。网关既是用户访问的流量入口,也是后端业务应答的最终出口。这决定了网关是模拟用户行为进行流量压测的必经一站,也决定了是观测压测指标评估用户体验的必须环节。在网关上边压测,边观察,边调整限流配置,对大促高可用体系的建设,可以起到事半功倍的效果。 

第三点是应对安全攻击的不确定性。在业务峰值时,大量异常的流量,甚至是普通用户的重试流量,都很可能导致整体流量超出业务承载范围,从而影响正常用户的访问。基于网关的流量安全防护能力,例如 WAF 等功能,通过识别出异常流量提前拦截,以及将异常 IP、cookie 自动加入黑名单等手段,既可以使这部分流量排除在流控阈值之外,也可以保障后端业务逻辑安全。这也是从入口层面保障业务稳定性的重要一环。 

2c791e58946ff99a05eb184dc84d9a53.png 

Higress 云原生网关内置了 Sentinel 高可用模块,历经多年双十一大促洪峰流量考验,提供了丰富的高可用防护能力,包括流控、并发控制、熔断,可以从入口层面保障服务稳定性;此外,Higress 商业版 MSE 还具备流量预热能力,通过小流量预热方法,可以有效解决大促场景下,资源初始化慢所导致的大量请求响应慢、请求阻塞问题,避免刚扩容的节点无法提供正常服务,影响用户体验。 

那么,仅仅依靠入口流量防护来保障整体业务稳定性是否是足够的?随着我们业务规模、量级的不断增长,业务架构趋于复杂,微服务间的调用拓扑关系呈复杂网状结构。影响稳定性的因素有非常多,除了流量超过承载能力导致不可用的场景之外,服务之间调用的稳定性问题也是不可忽视的一点。比如 ChatGPT 可能依赖几个第三方服务,假设某个搜索服务出现异常,慢调用、超时的请求非常多,而调用端又没有有效地进行预防与处理,则调用端的线程池会被占满,影响服务自身正常运转。在分布式系统中,调用关系是网状的、错综复杂的,某个服务出现故障可能会导致级联反应,导致整个链路不可用,整体 RT 升高,并发升高,此时仅在网关层面做流控是无法保障业务稳定性的。我们需要在应用层结合流控、慢调用熔断、并发隔离等手段,配合网关层的流控来达到整体业务稳定的目标。  

应用视角的稳定性治理手段 

  • 通过细粒度流控与热点防护,避免业务超过承载能力导致不可用 

面对突发的流量,流控能力可以将超出系统服务能力以外的请求拒绝掉。在应用层,建议结合容量评估,通过压测等手段评估流量阈值,针对核心 API、接口、方法进行细粒度的流控配置,起到安全气囊的作用。注意并不是只有大流量场景才需要流控,任何服务与接口都有其容量上限,对于核心接口,无论流量大小,都需要配置流控来起到保护作用。 

9eec28a8d289edc87400b4a615c7341b.png 

同时,针对热点流量的防护也是保障服务稳定性的重要一环。比如请求中的某些 UID、某些 IP 具有热点访问性质,业务方事先无法准确预知热点属性;这些突发的热点流量会击穿缓存,将 DB 打挂,影响了正常流量的业务处理,造成整体不可用。这种场景下,通过借助 Sentinel 热点参数流控能力,自动识别参数中的 TopN 访问热度的参数值,并对这些参数分别进行流控,避免单个热点访问过载导致系统不可用。 

  • 通过并发隔离与熔断,保障调用端不被不稳定服务拖垮 

f33a3ca63396e6a4e433326cb5e9fdeb.png

想象这样一个场景,某系统对外提供某查询接口,SQL 语句涉及多表 join,某些情况下会触发慢查询,耗时长达30s,最终导致 DB 连接池/Tomcat 线程池满,应用整体不可用。这种场景下,借助 Sentinel 的并发隔离能力,可以给重要服务调用、SQL 访问配置并发线程数限制,相当于一道软保险,防止不稳定调用过多挤占正常连接池、线程池资源造成服务被拖垮。 

fbb92ce1f4635f881a2e320f1ea98c84.png

业务高峰期,某些下游的服务提供者遇到性能瓶颈,甚至影响业务。我们可以对部分非关键服务消费者(弱依赖服务)配置熔断规则,当一段时间内的慢调用比例或错误比例达到一定条件时自动触发熔断,后续一段时间服务调用直接返回Mock的结果,这样既可以保障调用端不被不稳定服务拖垮,又可以给不稳定下游服务一些喘息的时间,同时可以保障整个业务链路的正常运转。 

  • 通过离群实例摘除解决实例单点异常问题 

91ccb02de7d75722ba591a156394aaf7.png 

在业务峰值时刻,应用的某几台机器由于磁盘满,或者是宿主机资源争抢导致load很高,导致 consumer 出现调用超时,从而影响系统的整体稳定性。我们可以通过配置离群实例摘除规则,自动摘除异常的实例,避免单点故障引起的整体不可用问题。 

展望 

如今是 AI 技术突破爆发的时代,我们再脑洞大开一些,是否可以把 AI 技术结合到流量防护体系,基于 AI+大数据的能力与策略来做到智能化保障服务稳定性呢?其实,Sentinel 一直在进行自适应、智能化流量治理的探索,结合控制论、排队论、强化学习等理论与策略来达到自动化保障业务稳定性的目标。目前 Sentinel 提供的基于 load + BBR 的自适应过载保护策略已经可以保障一部分场景下稳定性兜底,我们也在持续探索与演进,针对更多的稳定性场景进行落地。 

作为技术小伙伴,大家是怎么看待 ChatGPT,如何将 ChatGPT 运营在自己的业务和技术领域呢?欢迎交流,留言点赞最高的 TOP10,我们将送出Nacos + Sentinel 的社区礼物。 

参考阅读:

  • 十亿人都在用的健康码,运维体系是怎么设计的?

  • vivo 低代码平台【后羿】的探索与实践

  • 分布式系统关键路径延迟分析实践

  • 对话阿里云叔同:如何看待 2022 年云原生的发展,2023 年有哪些值得关注的技术?

  • 美团外卖搜索基于Elasticsearch的优化实践

本文由高可用架构首发。技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿

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

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

相关文章

阿里云通义千问官网上线了(阿里版ChatGPT)

阿里版ChatGPT的通义千问上线了,官网:https://tongyi.aliyun.com/ 阿里云的二级域名,你拿到邀请码了吗? 阿里云通义千问邀请码 阿里云通义千问大模型能力测试体验,人工智能语言大模型,还没拿到邀请码的同学…

阿里版 ChatGPT 已进入测试

点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~中文详细注释的开源…

使用openai模块接入chatGPT,无需魔法可直接畅聊

本人早先买了一个外网服务器,闲置没用,最近ChatGPT爆火,突发奇想,是否可以利用外网服务器,搭建服务端网页端来实现国内访问。 说干就干,首先需要准备以下工具: chatgpt API 密钥外网服务器&am…

bing必应引入chatgpt为什么我没看到在哪里?

一、在哪里可以看到 1、主页 打开https://bing.com/ 也就是bing国外的主页,当然国内的主页cn.bing.com还没有chatgpt。可以看到搜索栏变成了一个拉长的对话框 2、搜索页面 大家可以看到在这个栏目会多出一个“聊天”的项目 二、bing的chatgpt是什么效果 三、为什么我…

ChatGPT实用使用指南 让它解你所问

Chatgpt无疑是这几年来影响力最大的AI技术之一,生成式的AI模型正在促进各个行业的效率和自动化发展,Chatgpt对于个人、企业和各个行业都有着一定的影响 在我刚接触的时候,发现对Chatgpt的认知太肤浅了,一个最强的ai聊天机器人摆在…

chatGPT研究-(一)使用入门及Access Denied打不开问题解决

从去年底chatGPT刚出来到现在,除了官方openAI入口外,很多二次包装后的渠道、小程序产品层出不穷,同时包括百度文心一言等自研AIGC产品也是相继推出,感觉大模型研究确实被带火了一把。目前据了解,openAI使用时有很多限制…

Chatgpt详细登录教程

一、准备“梯子” 梯子、科学上网、翻墙,三者是同一个意思。本店没相关科技产品和服务,请用户各显神通。 1. 确认IP 打开跳转入口,看下图 ​ 2.尝试登录 注意,第1点不是必需的,有些设备ip查询会延迟但当下依然能登…

ChatGPT:重新定义搜索入口

ChatGPT是实现模糊搜索到精准推送的跨时代巅峰之作。ChatGPT:重新定义搜索入口_up.pdf: https://url39.ctfile.com/f/2501739-805099579-92a952?p2096 (访问密码: 2096) 参考文献: [1]ChatGPT:重新定义搜索入口_up.pdf: https://url39.ctfil…

国内版 ChatGPT值不值得上手----PlumGPT测评

前言:什么是PlumGPT(国内版的chatgpt),PlumGPT国内版ChatGPT是一个基于GPT-3.5算法的人工智能聊天机器人,能够通过自然语言与用户交互,提供各种服务和解答各种问题。本文将对PlumGPT国内版ChatGPT进行全面测…

【ChatGPT】还不会用ChatGPT ?快来看看ChatGPT如何为你所用吧——

毫无疑问,ChatGPT 已经风靡全球,推出仅仅一周就拥有了 100 万用户。 OpenAI 推出了这个受欢迎的聊天机器人或语言模型,它可以根据给定的输入生成类似于人类的文本。人们已经用 ChatGPT 生成了几乎各种类型的文本,从论文、诗歌到落地页和网站。 这个聊天机器人还能生成代…

国内版的ChatGPT弯道超车的机会在哪里?

前言 从去年11月最后一天ChatGPT诞生,截至目前,ChatGPT的热度可谓是爆了。众所周知,ChatGPT是美国“开放人工智能研究中心”研发的聊天机器人程序,它是一个人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人…

ChatGPT到底怎么用?

ChatGPT简介 ChatGPT(Chat Generative Pre-trained Transformer)全称为生成型预训练变换模型,由美国 OpenAI团队研发。现如今的ChatGPT不仅可以根据聊天上下文进行交互,还可以进行文学创作、翻译、编写代码等,相信以后…

亲测:Chatgpt国内就能使用,全面支持中文

ChatGPT是什么? ChatGPT是一个基于人工智能技术的聊天机器人网站,它使用了GPT(Generative Pre-trained Transformer)模型来生成自然语言响应。用户可以在ChatGPT上与机器人进行对话,机器人会根据用户的输入生成相应的回…

chatGPT爆火,什么时候中国能有自己的“ChatGPT“

目录 引言 一、ChatGPT爆火 二、中国何时能有自己的"ChatGPT" 三、为什么openai可以做出chatGPT? 四、结论 引言 随着人工智能技术的不断发展,自然语言处理技术也逐渐成为了研究的热点之一。其中,ChatGPT作为一项领先的自然语言处理技术…

如何更好的利用chatgpd 国内

文章目录 前言好用的网站更好的使用AI 前言 当您需要一位聪明、快速、准确地回答问题并提供帮助的伙伴时,您可以考虑ChatGPT。ChatGPT是OpenAI开发的大型语言模型,它可以理解人类语言并以自然的方式回答问题。但由于某些因素,国内无法正常访…

在国内,如何优雅的使用ChatGPT??

ChatGPT 是一个在线的语言模型,可以通过 Web 端访问。 由于中国大陆地区的网络环境和政策原因,访问 Web 端可能会遇到一些困难。 以下是一些可能可行的方法: 1、使用 VPN 通过使用 VPN 可以切换到国外的网络环境,从而访问 Cha…

国内也能畅玩gptchat,游玩攻略分享

看到很多人都不知道怎么玩gptchat,小编就不能忍了,其实要玩chatgpt是非常的简单的,完全是能免费体验chatgpt的强大的。下面我们一起来了解一下国内也能畅玩gptchat,游玩攻略分享。 一.Chatgpt国内为啥能玩 其实现在很多的程序都接…

chatgpt是什么东西?chatgpt在国内能用吗

chatgpt是什么意思? ChatGPT 是一种“以对话方式进行交互”的聊天机器人模型,是一种由 AI 技术驱动的自然语言处理工具,可让您与聊天机器人进行类似人类的对话等等。语言模型可以回答问题并帮助您完成撰写电子邮件、论文和代码等任务。这种类型的生成式…

pycharm中使用chatgpt

前言 ChatGPT是目前最强大的AI,不仅能够聊天、写小说,甚至码代码也不在话下。 但是在国内要使用chatgpt很麻烦,国内一家团队开发了一款idea插件NexChatGPT,用数据代理的方式,让我们在国内也能轻松的使用chatgpt。 没…

ChatGPT 应用合集

最近用了一些 ChatGPT 的周边产品,挑几个感觉不错的分享下。 1、Poe 地址:https://poe.com Poe 内置了 Sage、Claude、Dragonfly、和 ChatGPT 。其中,Sage 是基于 ChatGPT 简化版本的 AI 机器人。目前 Poe 移动端只支持 iOS,而且是…