淘宝免费ip地址查询导致服务堵死的坑

淘宝免费ip地址查询导致服务堵死的坑

1、业务中因为想根据用户ip来做一些友好的提示,所以在网上找了个免费的ip查询地址

http://ip.taobao.com/service/getIpInfo.php?ip=

虽然说淘宝的这个地址会限制频率,但是也还勉强可以用

但是今天线上几个服务突然全部被堵死了

主要现象如下:

本地curl “127.0.0.1:port”没反应,外部也进不来

ss -s发现 TCP也是达到1W+

项目日志有的时候刷的很快,有的时候就暂停了

top查看,发现cpu并不高,内存占用也一般

因此看不出来问题究竟出在哪里

——————————————————————————————————————————-

使用jstack dump出停止时的线程信息

发现线程信息基本都是TIME_WAITED,WAITED,而且每个线程都各自等待着不同的线程

本地经过仔细的看,发现了点蛛丝马迹,代码定位到请求淘宝的接口上

接着再用https://jstack.review/#tda_1_dump分析了一下,结果如图,也基本确定了问题出在这里

查看代码,最后发现,一个很高频的接口,因为请求淘宝接口的http工具(历史工具),没做超时显示,返回时间最高的甚至达到900多s

至此,问题解决,项目http工具不统一,留下的炸弹,而api接口未做熔断,也是一大纰漏

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112562.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • cdn加速 免备案_免备案cdn国内节点

    cdn加速 免备案_免备案cdn国内节点不备案可以进行CDN加速吗?既然探讨这个问题,我们就得先谈一下什么是CDN加速。内容传递网路(英语:ContentDeliveryNetwork或ContentDistributionNetwork,缩写:CDN)是指一种透过互联网互相连接的电脑网路系统,利用最靠近每位使用者的伺服器,更快、更可靠地将音乐、图片、影片、应用程式及其他档案传送给使用者,来提供高效能、可扩展性及低成本的网路内容传递给使用者。目的:解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、..

    2025年10月24日
    4
  • STM32项目总结及代码中delay函数需慎用

    STM32项目总结及代码中delay函数需慎用这半年实验室做了个智能XX的调度平台,大概思想是通过部署的端设备实时采集信息并且通过通信的方式发送给云端服务器,最后可以实现WEB端和小程序的实时访问和监控,上位机方面自不用说,硬件方面,昨天把做出的智能XX终端给实验室的嵌入式大牛徐老师指教下,徐老师看到代码第一眼就说你们这个是不是根据网上某些案例改的,我回答说是根据淘宝店家或者论坛上找到的代码改的,然后徐老师点评到,如果做的东西是…

    2022年5月31日
    42
  • MySQL数据库基础知识_MySQL数据库的特点

    MySQL数据库基础知识_MySQL数据库的特点了解mysqlmysql是一个关系型数据库:以库、表、行、列这种关系模型组织数据Mysql使用时的注意事项每日一条数据库操作语句都应该以分号;结尾,因为mysql支持换行操作mysql数据库对大小写不敏感,大小写皆可,通常关键字使用大写表示mysql数据库中哭的名称应该以英文字符或者一些符号起始,但是不允许以数字起始mysql数据库中哭的名称、表的名称、字段的名称都不能使用mysql关键字,比如create、database;如果非要使用,那就用反引号括起来库的操作查看mysql

    2022年8月20日
    8
  • idea 2021 永久激活码 mac[最新免费获取]

    (idea 2021 永久激活码 mac)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~S3…

    2022年3月26日
    53
  • Java中如何将int 类型转换为 Long类型

    Java中如何将int 类型转换为 Long类型版权声明:本文由施勇原创,转载请注明作者和出处!   https://blog.csdn.net/shiyong1949/article/details/52687955Longl=(Long)3;1很多同学可能会用上面的方法将int类型转换为Long类型,但事实上这样是不可行的。因为Long是包装类,而int是值类型数据,两者是不能这样强转的。longl=(long)3;…

    2022年5月3日
    2.0K
  • C++11新特性,利用std::chrono精简传统获取系统时间的方法

    C++11新特性,利用std::chrono精简传统获取系统时间的方法

    2022年2月4日
    75

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号