美文网首页
微信token刷新超过上限

微信token刷新超过上限

作者: 我菠菜今天就是要为所欲为 | 来源:发表于2020-10-08 01:06 被阅读0次

微信access_token: 微信平台所有接口的调用都需要使用access_token,所以需要先获取access_token。access_token在2小时内有效,过期需要重新获取,但1天内只能获取2000次。

原系统access_token管理方式: 定时任务每10分钟调用微信接口获取access_token,获取到的access_token先保存到数据库,然后保存到缓存中。
调用微信接口获取用户相关信息时,先查询缓存中的access_token,缓存access_token无效或过期,再查询数据库access_token,数据库access_token无效或过期,直接调用微信接口获取access_token。获取到的access_token先保存到数据库,再保存到缓存中,之后调用微信接口获取用户相关信息。用户访问公众号需要使用access_token调用微信接口获取用户信息、授权登录。

故障现象: 用户访问公众号一直跳转到公众号关注页。

原因分析:

系统某接口需要使用一段慢sql访问数据库,为了减小数据库压力,系统设计了接口先访问缓存,缓存未命中再访问数据库。缓存中数据由定时任务从数据库同步到缓存中。由于定时任务失效,导致缓存穿透,接口直接多次查询数据库,导致数据库停止响应。刷新access_token时,保存access_token到数据库失败,从而access_token过期。之后每有一个用户请求,便会调用一次微信接口获取access_token。access_token调用次数达到2000次之后,当日系统无法再使用。次日自行恢复。

优化方案:

  • 调整保存access_token顺序,先保存到缓存再保存到数据库;
  • 记录access_token当日获取次数,达到1800次不再获取微信access_token;
  • access_token获取次数每达到500的倍数时发邮件报警;
  • 监控定时任务执行状态,定时任务停止后发邮件报警。

相关文章

网友评论

      本文标题:微信token刷新超过上限

      本文链接:https://www.haomeiwen.com/subject/rxcnuktx.html