PmHub全局过滤器统计接口调用耗时(👍必看)
你好,欢迎来到面试系列!这篇文章主要讲 PmHub 中如何实现自定义网关全局过滤器以及如何进行接口耗时统计。会从理论到实战再到面试,依次展开。
你可以直接将以下技术点写在简历上,并掌握好以下的知识点以及搞明白在 PmHub 中具体应用场景和如何实际写这部分代码。在最后还提供了面试题预测,这部分知识比较多,可以慢慢消化哦。
- 自定义 SpringCloud Gateway 全局过滤器,实现自定义网关统一鉴权,统计接口调用耗时情况。
本教程大纲:
理论知识
什么是网关?
微服务架构已经是现代应用程序开发的主流方式,同时于我们而言,也是面试中必须掌握的重中之重。
微服务架构是将之前的单体应用拆分成多个小型微服务,每个服务都可以独立部署、扩展和维护。然而,微服务架构也带来了一些挑战,其中之一就是服务间通信的管理。这时候,微服务网关就成为了必不可少的组件。
微服务网关是一个位于微服务架构前端的组件,它充当了所有微服务的入口。微服务网关负责路由请求、负载均衡、安全认证、流量控制、监控和日志记录等任务。微服务网关可以将多个微服务组合成一个统一的API,从而简化了客户端与微服务之间的通信。
API 网关我觉得可以理解成是微服务系统的门卫,是微服务架构中一个关键的组件,负责管理和调控外部请求进入内部微服务的流量。为了更好理解,拿个生活中的例子来对比下:
一个大型的购物中心(微服务系统),里面有很多不同的商店(不同的微服务),比如服装店、餐馆、电影院等等。每个商店都有自己独立的入口,这样的好处是每个商店都可以独立运营。但是,如果每个顾客都直接去商店入口没有统一入口,会非常混乱。
而且,购物中心需要对每个商店的顾客流量进行管理,比如防止某些商店人满为患或者统一处理会员优惠等。
能干嘛?
常见的微服务网关有哪些?
常见的微服务网关实现包括 Spring Cloud Netflix 的 Zuul 和 Spring Cloud Gateway,以及其他流行的网关如 Kong。
开源网关 Kong Gateway 是一个轻量级的 API 网关,基于 OpenResty + Lua 开发,提供了丰富的功能以及高度灵活的扩展性,可以通过插件的方式扩展 Kong 的功能。
Kong Gateway 有如下优势:
- 高性能:Kong 基于 Nginx 和 OpenResty,具有非常高的性能和可扩展性,适用于处理高并发和高吞吐量的场景。
- 插件生态:Kong 提供了丰富的插件,可以轻松实现身份验证、限流、日志记录、监控等功能,并且可以通过 Lua 自定义插件。
- 多语言支持:Kong 支持多种编程语言,通过其插件系统,可以用 Lua、Go、Python 等语言编写插件。
- 跨平台支持:Kong 可以在多种平台上运行,如 Kubernetes、Docker 等,适合多种环境部署。
- 企业支持:Kong 提供企业版,包含更多高级功能和商业支持,适用于需要企业级支持和服务的场景。