PmHub 整合 Gateway 实现微服务网关配置和限流,6000 字+20 张手绘图
球友好,这一节我们来更细粒度地聊一聊微服务网关 Gateway。
在面试系列中,我们已经讲过一些关于 Gateway 的基础知识,以及一些 Gateway 在 PmHub 中的实操。这一节, 我们将进行更深入地学习,来帮你打通任督二脉:
- Gateway 工作流程机理
- 网关如何做路由映射
- 如何动态获取服务 URI
- 自定义断言
- 自定义过滤器
- PmHub 中的高级实践
书读百遍不如跟着我实操一遍,涉及到代码的地方,希望你可以拿起高贵的笔记本和我一起敲击哦。
概述
这部分和面试系列稍微会有一些交叉,但会有一些意想不到的惊喜。
由于苍何最近在公司整的大数据及 K8s 应用,还发现了一种更高性能的网关,它的名字叫 APISIX,你可能没听过他,但工作中有可能用到哦,这里我们来看看他和 SpringCloud Gateway 有啥区别:
对比维度 | Spring Cloud Gateway | APISIX |
---|---|---|
项目定位 | 基于 Spring Cloud 的微服务网关解决方案,专为 Java 生态设计。 | 一个高性能的开源 API 网关,面向多语言生态和高并发场景。 |
技术栈 | 基于 Java 和 Spring Reactor。 | 基于 Nginx 和 OpenResty,采用 Lua 语言扩展插件体系。 |
性能 | 性能较高,但受限于 JVM 性能瓶颈。 | 高性能,轻量级,基于 Nginx 的高并发优势。 |
生态支持 | 强大的 Spring 生态系统,集成 Spring Cloud 全家桶。 | 支持多语言客户端,广泛适配云原生生态,如 Kubernetes。 |
扩展性 | 支持自定义 Filter 和 Predicate,但需掌握 Java 编程。 | 提供丰富的 Lua 插件,可动态加载,支持实时扩展。 |
动态性 | 配置较为静态,需重启应用加载新配置。 | 支持动态配置,无需重启,配置变更实时生效。 |
管理方式 | 依赖代码配置(通过 Java 配置类或 yml 文件)。 | 提供友好的 Dashboard 界面,支持 REST API 和 CLI 管理。 |
插件体系 | 插件功能有限,主要通过 Filter 实现。 | 插件丰富,涵盖鉴权、限流、日志监控、数据转换等功能。 |
服务发现 | 原生支持 Spring Cloud 服务发现机制(Eureka、Consul 等)。 | 支持多种服务发现方式,包括 Nacos、Eureka、Consul 等。 |
协议支持 | HTTP 和 WebSocket。 | 支持 HTTP、HTTPS、gRPC、WebSocket、TCP 等多种协议。 |
社区支持 | 依赖 Spring 官方社区,更新周期较长。 | Apache 基金会项目,社区活跃,更新频率较高。 |
适用场景 | 适用于 Java 微服务体系,特别是基于 Spring Cloud 的项目。 | 适用于多语言、多协议的高并发场景,如跨语言服务集成场景。 |
学习成本 | 对熟悉 Spring 生态的开发者成本较低。 | 需要了解 Nginx 和 Lua,较高的学习曲线。 |
性能瓶颈 | JVM 和线程模型可能成为高并发场景的瓶颈。 | 更接近于原生 Nginx 性能,适合大规模高并发流量处理。 |
典型用户<
真诚点赞 诚不我欺 |
热门评论
1 条评论
回复