在很长一段时间里,Ingress 是 Kubernetes 集群的标准北向流量入口。但随着业务复杂度增加、微服务体系兴起、多协议需求增长,Ingress 的先天缺陷越来越明显。
2024–2025 年,Kubernetes 官方与 CNCF 明确:
Gateway API 是下一代流量管理标准,将逐步取代 Ingress 成为默认推荐方式。
而随着 ingress-nginx 宣布在 2026 年 3 月停止维护,Gateway API 的迁移意义愈发明确。
本文将从原理、对比、设计理念、CRD、部署与使用示例多个方面全面介绍 Gateway API。
Gateway API 是 Kubernetes SIG-Network 推出的新一代流量治理标准。
核心目标:

在微服务架构中,应用实例的频繁部署、扩缩容、重启都是常态。
如果不进行优雅上下线(Graceful Startup & Shutdown),就可能导致:
为了解决这些问题,我们需要让服务在启动和关闭阶段都更有序、更“温柔”、更可控。
从 Spring Boot 2.3+ 开始,官方就支持优雅关闭(Graceful Shutdown):
server:
shutdown: graceful或通过启动参数启用:
-Dserver.shutdown=graceful这表示当 Spring Boot 接收到关闭信号(如 SIGTERM)时,不会立刻中断请求,而是:
在网络通信中,端口是用于区分不同服务的重要资源。通常,每个服务会绑定到一个特定端口上,但有时我们需要通过同一个端口来代理不同的服务。这种技术被称为端口复用。本文将介绍端口复用的场景、用途、协议特性,并分别使用 Nginx 和 HAProxy 进行端口复用配置。
端口复用在以下场景中非常有用:
端口复用的实现依赖于协议特性。通过分析协议的特定字段或数据包的前几个字节,可以判断请求的类型并将其转发到相应的后端服务。
可重现构建(reproducible builds)是一组软件开发实践,如果给定相同的源代码、构建环境和构建指令,任何一方都可以bit-by-bit重新构建出相同副本,则构建是可重现的。本文将探讨可重现构建的重要性,以及在maven项目中如何实现这一目标。
不知道你有没有发现,你的java工程在没有修改代码的情况下,两次构建出来的jar/war包md5值是不一样的。为什么会出现这种情况呢?jar包其实是一个zip压缩包,当你解包两次构建查看其中的差异时,你会发现最明显的区别就是文件夹的时间不一样了:

除了时间不一样以外,还有元数据等等,具体要解决的问题,在apache官网有个提案,记录了可重现构建需要解决的问题。