专栏首页小康的自留地优雅解决LeanCloud流控问题

优雅解决LeanCloud流控问题

前言

最近好多人遇到了"因流控原因,通过定时任务唤醒体验版实例失败,建议升级至标准版云引擎实例避免休眠"。我也遇到了这种问题,太难受了。难道白嫖结束了,羊被薅死了?

但我还是不甘心,于是只能另寻他法。

首先看到官方所说:

既然是同一时刻,那么是不是意味着只要搓开时间就可以了呢?

我便调整时间尝试了几天,第一天还好,但以后便又出现了流控导致的失败。

因此,调整时间避免的方案治标不治本。还需另寻他法。

目前方案

  1. 修改定时任务的唤醒时间 这个方案在上边我已经介绍过了,治标不治本。这里我并不推荐。
  2. 在博客多加入一条请求。 也就说每一次访问博客时,将leancloud唤醒。这种方法可以,这也是我最先想到的,但无疑,这会在一定程度上拖慢博客加载速度。
  3. 第二个方案的变种 为什么说是变种。因为也是加一个请求,之不过不会在你博客加,那么加在哪里呢?请继续往后看。

优雅解决

LeanCloud的机器唤醒其实还有一种方式。详情请看休眠策略

  • 如果应用最近一段时间(半小时)没有任何外部请求,则休眠。
  • 休眠后如果有新的外部请求实例则马上启动。访问者的体验是第一个请求响应时间是 5 ~ 30 秒(视实例启动时间而定),后续访问响应速度恢复正常。
  • 强制休眠:如果最近 24 小时内累计运行超过 18 小时,则强制休眠。此时新的请求会收到 503 的错误响应码,该错误可在 云引擎 > 统计 中查看。

那么我们只要每三十分钟之内在外部访问一次不就可以解决了么?

于是我查看了一下valine-admin的唤醒源代码,自唤醒云函数也是这样实现的。于是便继续开始白嫖。

开始尝试

这里我使用的是GitHub+Actions。是不是很熟悉,自动部署也是这个方案呢。

  1. 鼠标放在右上角,选择setting
  1. 点击Developer settings
  1. 选择Personal access tokens,添加一个新的TOKEN。 这个TOKEN主要使用来启动actions和上传结果用的。 设置名字为GITHUB_TOKEN , 然后勾选 repo , admin:repo_hook , workflow 等选项,最后点击Generate token即可。

名字请务必使用GITHUB_TOKEN

  1. 接下来FORK项目。 地址:https://github.com/blogimg/WakeLeanCloud 如果觉得好用可以点个赞哦!
  2. 成功FORK后,进入项目的设置。添加你的leancloud的后台地址(也就是评论管理的后台地址)

选择Secrets,添加你的地址

其中Name的名字必须为SITE,Value可以是多个地址,用英文逗号分隔。不要中中文逗号,不要用中文逗号,不要用中文逗号

  1. 接下来对自己的项目点个star就能启动了,启动后请切换到actions,看看是否运行成功。
    • 成功 那么你就可以关掉了,默认是每天8:00-24:00时每20分钟运行一次。(GitHub时间稍有延迟,大概时2-5分钟。)
    • 失败 请认真看本教程。

    自己点自己的项目是手动执行一次actions。是为了测试才设计这个功能的哦! 并不是不点星这个actions就不会运行。

  2. 最后,如果觉得好用,请给我点个star哦!

问题

  1. 修改频率 自己修改actions的配置文件即可。时间请自行百度cron表达式。
  2. 后台地址会不会暴露 不会的
  3. 没有效果 请确保你的第五步成功添加了网址,如果没有添加也会定时执行actions的动作而不会报错。可以在详情里查看是否监控的你的地址。正常情况下会如下图所以,多个网址会依次排列。如果没有填写网址则会默认访问作者的博客。

最后

既然用上了valine,那么我想再次安利下我魔改的valine-admin哦!

项目地址:https://github.com/sviptzk/Valine-Admin-Server

教程地址:https://www.antmoe.com/posts/2380732b/index.html

相较于原版的优势如下:

微信提醒(基于方糖公众号)

QQ提醒(基于QMSG)

一套很漂亮的邮件模板(基于以为大佬的魔改)

一个漂亮的后台页面(基于懒人大佬)

适配国际版的时区问题

更多特性正在研发!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从零开始搭建Hexo博客

    写此篇文章的初衷就是当一个完全不懂的小白可以看着此篇教程后就可以完成自己的Hexo博客搭建。

    Dreamy.TZK
  • 模仿一个在线表格

    展示地址:https://gethtml.cn/project/2020/04/19/index.html

    Dreamy.TZK
  • Hexo利用coding持续集成实现双部署

    最近这一段时间一直使用的是GitHub+Actions实现双部署。因为已经了解到了coding是有访问认证的。但一直忽略了GitHub可以直接使用Token进行...

    Dreamy.TZK
  • DevOps的支撑服务:K8s容器管理与应用部署

    ? 大家好,本期微课堂介绍在新一代数字化企业云平台中对于Kubernetes的学习以及使用的总结。 ? 本次分享分为两部分: 1.介绍Kubernetes是什...

    yuanyi928
  • Github 项目推荐 | Google 大脑神经音频合成器的物理接口 —— Open NSynth Super

    Open NSynth Super 是 NSynth 的实验性物理接口,而 NSynth 是 Google 大脑 Megenta 团队开发的一种机器学习算法,用...

    AI研习社
  • [ SSH框架 ] Hibernate框架学习之一

     CRM(Customer Realationship Management)客户关系管理,是利用相应的技术信息以及互联网技术来协调企业与顾客间在销售、营销和...

    Kevin_Zhang
  • PHP通信接口大坑集锦

    最近因为毕设在搭建接口及数据库环境,使用Apache+MySQL+PHP在阿里云ECS服务器中配置,之前在本地配置过并成功实现,但是在阿里云中却频频出错,记录下...

    代码咖啡
  • [ SSH框架 ] Hibernate框架学习之一

    Kevin_Zhang
  • 简单的Hibernate入门简介

    其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍...

    庞小明
  • Magicodes.WeiChat——缓存管理

    本框架支持缓存管理,内部机制使用开源库CacheManager。支持全局缓存、租户缓存,默认使用的系统缓存实现,可以在Web.config将其配置为其他缓存类型...

    雪雁-心莱科技

扫码关注云+社区

领取腾讯云代金券