首页 > 其他分享 >【故障补牢】贪吃的 Bing 爬虫,限量供应的应对措施

【故障补牢】贪吃的 Bing 爬虫,限量供应的应对措施

时间:2023-05-09 09:35:07浏览次数:48  
标签:limitOptions 限量供应 Bing 爬虫 补牢 故障 限流 pod

相对于【故障公告】,【故障补牢】分享的是园子在发生故障后采取的亡羊补牢措施。

在上次被微软 Bing 爬宕机后(详见 【故障公告】被放出的 Bing 爬虫,又被爬宕机的园子),我们采取了2个应对措施,然后解除了对 Bing 爬虫的屏蔽。

措施1:限流——采用滑动窗口进行限流

我们之前采用的限流措施没有采用滑动窗口,只能防君子不能防小人,比如限制同一个IP一天只能请求2万次,但如果遇到大胃口的爬虫,1秒请求2万次,虽然没有超过限制,但服务器已趴下。

我们通过 ASP.NET Core 内置的 rate limiting middleware 进行滑动窗口限流,参考博文 ASP.NET Core rate limiting middleware in .NET 7

services.AddRateLimiter(
    _ =>
    {
        _.GlobalLimiter = PartitionedRateLimiter.CreateChained(
            PartitionedRateLimiter.Create<HttpContext, string>(
                _ => RateLimitPartition.GetSlidingWindowLimiter(
                    "total",
                    _ => new SlidingWindowRateLimiterOptions()
                    {
                        AutoReplenishment = true,
                        PermitLimit = limitOptions.TotalPermitLimit,
                        QueueLimit = 0,
                        Window = TimeSpan.FromSeconds(limitOptions.WindowSize),
                        SegmentsPerWindow = limitOptions.WindowSize,
                        QueueProcessingOrder = QueueProcessingOrder.OldestFirst
                    })),
            PartitionedRateLimiter.Create<HttpContext, string>(
                context => RateLimitPartition.GetFixedWindowLimiter(
                    partitionKey: context.GetUserIp() ?? "unspecified",
                    factory: _ => new FixedWindowRateLimiterOptions
                    {
                        AutoReplenishment = true,
                        PermitLimit = limitOptions.PermitLimit,
                        QueueLimit = limitOptions.QueueLimit,
                        Window = TimeSpan.FromSeconds(limitOptions.WindowSize),
                        QueueProcessingOrder = QueueProcessingOrder.OldestFirst
                    })));
        _.OnRejected = (context, _) =>
        {
            context.HttpContext.Response.StatusCode = StatusCodes.Status429TooManyRequests;
            return default;
        };
    });

措施2:隔离——专用 pod 限制计算资源、专用负载均衡限制带宽

借助 k8s 的资源隔离能力,部署专用的 pod 给 Bing 爬虫使用,最多把 pod 爬挂,不会造成服务器宕机,对其他应用 pod 毫无影响。

部署专门的负载均衡给 Bing 爬虫通行,这样可以避免因爬虫抢占带宽而造成其他正常请求无法正常响应,而且可以通过限制带宽控制爬虫的并发请求量以及带宽成本。

标签:limitOptions,限量供应,Bing,爬虫,补牢,故障,限流,pod
From: https://www.cnblogs.com/cmt/p/17383699.html

相关文章

  • 《花雕学AI》新版必应 Bing 登场:轻松注册,一站式搜索、聊天与绘画应有尽有
    引言:你是否曾经在网上搜索信息时感到困惑或沮丧?你是否曾经想要在网上创造一些有趣或有用的内容,却不知道从何开始?你是否曾经想要用文字描述一个图像,却无法找到合适的图片?如果你的答案是肯定的,那么你一定会对必应Bing的新升级感兴趣。必应Bing是一款基于AI的搜索引擎,能够理解......
  • 微软“放大招”!官宣BingChat AI全面开放:无需申请
    早些时候,微软Edge在官网宣布,基于GPT-4的人工智能搜索引擎BingChatAI将正式全面开放,不再需要进行申请。经测试,目前,在网络环境允许的情况下,任何用户都可以直接访问BingChat,并与之进行对话搜索。 同时,微软承诺,目前该功能仍在进行升级,后续将引入包括图形、图表等呈现方式,帮助用......
  • 讯飞星火大模型 与New Bing实测对比
    昨天科大讯飞发布了讯飞星火认知大模型,在发布会现场实测大模型的7种核心能力,并发布了它在教育、办公、汽车、数字员工领域的应用成果。科大讯飞董事长刘庆峰表示:认知大模型展示了通用人工智能的曙光,讯飞星火认知大模型已在文本生成、知识问答、数学能力3种能力上超越ChatGPT。NewB......
  • ChatGPT有门槛?微软NewBing全面开放
    最近微软毫无征兆的宣布BingChat全面开放,人人可用!大家都知道ChatGPT得使用门槛很高,而BingChat底层调用的是GPT4.0的模型,这无疑是体验GPT4.0最简单的姿势了,无需任何等待。只需注册一个账户,首页即可体验。让我们一起体验看看吧,打开微软必应首页,点击上面的聊天按钮,就进入了必应的智......
  • Bing的AI聊天使用体验
    Bing开启了AI聊天功能,我们这里做一个简单的测评,看看各种AI是否达到预期效果。PS:没有“魔法”的各位就不用看下去了1.登陆打开edge,遇到的第一个问题就是,使用“魔法”后,登陆报错0x80190001(不登录每天的聊天次数有限)搜索资料后发现一个好用的解决方式,下载fiddler,打开win......
  • z_auto_align G34 probing failed 问题及解决
    目前状况bltouch正常调平检测正常z轴自动对齐,显示probingfailed 原因:刷入新固件后,没有在printer上恢复设置(restoresetting),导致的probeoffset错误 解决方案:多种情况都可能导致该错误,此处仅为其中一种,以作补充刷入固件后检查以下probe......
  • 微软基于 ChatGPT 的 Bing 和 Edge 进入移动端
     长话短说移动设备上的MicrosoftEdge和Bing应用程序现在包括ChatGPT驱动的AI聊天体验。您需要成为Microsoft预览计划的一部分才能访问应用程序上的AI功能。微软还将人工智能驱动的Bing搜索集成到Skype中。 两周前,微软在桌面上展示了由ChatGPT......
  • 《花雕学AI》25:用文字画出你的非凡想象力,微软新Bing带你体验DALL-E的神奇
    你有没有想过用文字来画画?这听起来可能很不可思议,但是现在,你可以通过微软新Bing来实现这个想法。微软新Bing支持AI绘画功能,只要输入一句话,就能生成一幅图像。这个功能是由DALL-E驱动的,DALL-E是一个能够根据文本生成图像的神经网络。它可以创造出各种各样的图像,从抽象的概念到具体......
  • 《花雕学AI》19:比较ChatGPT与新Bing在文章润色方面的应用优势与测试案例
    引言:文章润色是指对已经写好的文章进行修改、优化或完善的过程,以提高文章的质量和效果。文章润色涉及到多方面的内容,如语言表达、逻辑结构、文献引用、格式规范等。文章润色对于提升写作水平、提高论文发表率、增加学术影响力等都有重要意义。然而,文章润色也是一项耗时耗力的工作......
  • UVa 10049 Self-describing Sequence (自描述序列&二分递推)
    10049-Self-describingSequenceTimelimit:3.000secondshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=34&page=show_problem&problem=990SolomonGolomb's self­describingsequence  istheonlynon­decreas......