基于 Netty 实现的 Gateway 遇到的问题总结

作者/分享人:蓬蒿
向 Ta 提问
杭州信息安全院安全研发部负责人(2013 - 2016),负责Web网站安全监测服务平台( Web 漏洞、敏感词、挂马、暗链等)的架构、设计与实现,熟悉常见 Web 漏洞的基本原理与渗透方式。现担任中国互联网最大财税平台的架构师,负责业务安全开发、安全体系建设、业务风控、API Gateway 等工作,熟悉常见 Dubbo 、HSF、Spring Cloud 等分布式服务架构设计与与实现。

API Gateway 初期业务访问的峰值从 10万/min 上升至 12万/min,导致网关出现“too many open files”错误,即打开最大文件句柄数超过最大值。经过排查发现 Jupiter 网关出现该错误时设置的句柄数值为 65535,运维尝试将具柄数值设置为 655350。

网关服务在修改完句柄数之后重启 Java 进程,某几台网关服务在重启后具柄数值快速上升至 20 万。由于单台机器服务实例打开的句柄数过多占据了大量物理内存,导致 JVM 进程被 Linux 系统给 OOM Killer。

本场 Chat 将分享该线上问题完整的排查过程:

  1. Netty 服务假死排查过程;
  2. 分析并解决 Netty4 的 IO 处理线程池遇到耗时业务容易把后端的 NIO 线程挂死的问题。
已有94人预订
预订达标
文章出炉
     
02月15日
03月04日
本场 Chat 文章已出炉,购买后即可阅读文章并获得一张蓬蒿的读者圈Pass
请务必添加GitChat服务号以查看活动进度及获取活动通知。
你可能还喜欢
解读《阿里巴巴 Java 开发手册》背后的思考
Hollis
LeetCode 刷题指南以及常见算法题解题思路总结
kerry
初探 Kafka
阿福
高并发系统缓存实战入门
饿了么物流技术团队
7 天从 Java 工程师转型为 Go 工程师
DIU哥
大数据开发面试指南
王知无
从零开始做你自己的文字识别系统
天马行空
程序员转型之路:做一个不会失业的独立开发者
Jeff
RabbitMQ 实战
寒月
掌握这些方法和技巧,你的自学才会更加有效率!
一个自学的程序员
代码案例讲解程序员的第一性原理
天马行空
Git 扫盲:用命令行剖析 Git 底层实现
叫我闪电
写一个 IoC/DI 容器来理解 Spring 框架的思想
愚凡
Java 并发编程运用之多线程并发解析单个大文件入库
woodwang
Spring AOP 源码详解
林某人
微信扫描登录
关注提示×
扫码关注公众号,获得 Chat 最新进展通知!