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

作者/分享人:蓬蒿
向 Ta 提问
白帽子,安全架构师。2013-2016某杭州信息安全院安全研发部负责人,负责《网站安全监测服务平台》(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 线程挂死的问题。
已有74人预订
预订达标
文章出炉
     
02月15日
03月01日
预订后,您将在03月01日之前获得一篇专享文章,您还将获得一张蓬蒿的读者圈Pass
请务必添加GitChat服务号以查看活动进度及获取活动通知。
退款保证:
• 02月19日前,预订人数未达标,您将获得全额退款。
• 作者未按时完成文章,您将获得全额退款。
你可能还喜欢
大型 Java 应用后台重构技术策略详解
驰骋
微服务网关 Spring Cloud Gateway 的应用实战
aoho求索
Docker 的基础知识整理
假不理
如何采用一套程序代码,实现系统的“千人千面”
白公
JVM 常见面试题指南
驰骋
用领域驱动实现供应链系统商品录入和出入库设计
GIM
谈谈应聘阿里全流程
应书澜
Java 最常见 200+ 面试题全解析:面试必备
老王
分布式链路追踪的前世今生
ASCE1885
前端面试指导
程序员-玄魂
Dubbo 框架内核原理剖析
追梦
穷人的新年红包系统,单节点 12W TPS
文心紫竹
Postman 自动化测试实践一文通
白宦成
RocketMQ 消息类型介绍及实现原理探究
老田
Vue.js 快速开发小程序实战
芒果
微信扫描登录