放弃 SpringCloud Gateway!Apache APISIX 在「还呗」业务中的技术实践

本文探讨了金融领域对技术的特殊要求,尤其是对Java的偏好。还呗选择Apache APISIX替代Spring Cloud Gateway,以解决性能和资源问题。文章详细介绍了架构变化、APISIX的应用实践,包括构建部署、定制插件和流量灰度,并讨论了Java层面网关的考虑因素。Apache APISIX的高性能和易维护性降低了维护成本,提升了业务效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不同行业之间,都会存在一些业务属性上的差距。对于金融领域的应用软件来说,因其涉及到钱等因素,所以在业务上会有以下独特属性:

  • 稳定性。 金融领域跟钱强相关,这对于业务稳定性就有着非常严格的要求,稳定性一旦出现问题,它将影响整个交易系统的成败。

  • 强监管。 强监管一般是针对生物医药领域、医疗领域和金融领域,因为它们所呈现的内容都与人的生命相关。所以,更高层面的强监管要求势必会影响一些业务层面的选型和架构呈现。

  • 准确性和有效性。 由于跟钱强相关,所以在数字层面的呈现更是要求零偏差。就像股票价格一样,它的数字呈现都是精确到了每分每秒和固定数位的。

基于以上这些特点,金融行业软件系统在进行系统设计、机房拓扑以及中间件选型时,就会出现一些与其他通用行业不太一样的地方。

对 Java 的那些爱与恨

金融系统为何独爱 Java

Java 自诞生以来就深受开发者的喜爱。在中国有将近 50% 的开发者在使用 Java 作为开发语言。这不单单是因为其语言的优势,也因为 Java 相关的生态非常庞大,尤其是国内的金融系统很多都是基于 Java 的,这导致有段时间大家都误以为所有的系统都是用 Java 做的。

近 15~20 年以来,大部分金融系统基本都选择了 Java 技术栈,深究其原因,我们认为主要是因为 Java 技术栈有以下几点优势。

在这里插入图片描述

正是如此,Java 逐渐得到了金融类软件系统的青睐。

云原生时代下的 Java 现状

随着技术行业的快速发展,单体架构逐渐被淘汰,微服务和云原生时代正在风靡四海。然而在近几年的技术大环境下,作为面向对象的高级语言,Java 也在一些业务场景中开始略显疲惫:

在这里插入图片描述

首先,Java 性能较低,这点对比一下 C 语言相关技术栈就会明白。Java 是基于虚拟机,它的内存管理是交给虚拟机来解决的,所以当面对一些高性能或动态变化的业务场景时,Java 语言在处理上没有那么强势。

其次,Java 语言需要更多的资源。一个架构的打造如果不考虑成本,很多问题都很好解决,但在云原生时代下,所有的资源计算变得越来越细、越来越颗粒化。Java 在运作时需要消耗大量的资源,由于 Java 分量重和需要重启的基础特性,因此在高 QPS 或者业务连续性要求较高的场景下,该语言会更容易出现问题。

最后就是指针变量的问题。习惯于写 C/C++ 语言的同学都知道,指针是一个非常好的资源。但 Java 是基于虚拟机,它把内存管理交给了 GC(Garbage Collection),而不是由手动程序进行管理,所以对于一些特

<think>好的,用户的问题是关于Spring Cloud Gateway的国产化替代方案或适配方法。我需要先理解用户的需求,他们可能是在寻找国内开发的API网关,以替代Spring Cloud Gateway,或者需要适配现有的系统到国产环境中。 首先,我想到参考用户提供的引用内容。引用3提到了国产的APISIX网关,并比较了它与Spring Cloud Gateway的优缺点。APISIX支持多种服务注册中心,如Eureka、Nacos、Consul,这可能适合需要集成多种异构系统的企业环境。同时,APISIX的插件机制可以替代Spring Cloud Gateway的Filter,提供熔断、限流等功能,这应该是一个重要的替代方案。 然后,引用4提到Spring Cloud组件的替代方案,可能还有其他国产网关产品。比如ShenYu(Apache ShenYu)也是一个开源的API网关,支持丰富的插件和协议,可能符合用户的需求。此外,腾讯的TSE Mesh和华为的CSE可能也是选项,不过需要确认它们是否直接替代Spring Cloud Gateway的功能。 用户可能需要具体的替代方案,包括开源产品和商业产品。APISIX和ShenYu都是Apache项目,社区活跃,文档支持中文,适合国内用户。商业产品如阿里云微服务引擎MSE和腾讯云API网关,提供了托管服务,可能更适合需要快速部署和运维支持的企业。 适配方法方面,用户可能希望在不更换网关的情况下进行国产化适配。引用3提到APISIX可以通过插件扩展,这可能包括与国产服务注册中心、配置中心的集成,比如Nacos。另外,结合Spring Cloud Alibaba的组件,如Sentinel,可以增强网关的治理能力。 需要确认各个替代方案的特点,比如性能、社区支持、与现有Spring Cloud生态的兼容性。例如,APISIX基于Nginx和OpenResty,性能较高,而ShenYu支持Dubbo集成,适合不同的技术栈。商业产品则提供稳定性保障和技术支持,适合对可靠性要求高的场景。 总结下来,替代方案主要分为开源网关和云服务商提供的网关。用户需要根据自身技术栈、性能需求、运维能力来选择。同时,适配方法可能涉及现有Spring Cloud Gateway的改造,集成国产组件如Nacos和Sentinel,或者使用APISIX的插件机制来替换原有的过滤器功能。</think>### Spring Cloud Gateway 国产化替代方案及适配方法 #### 一、国产化替代方案 1. **APISIX 网关** - **特点**:APISIX 是基于云原生架构的开源 API 网关,支持动态路由、负载均衡、限流、熔断等功能,通过插件机制可扩展性极强[^3]。 - **优势**: - 兼容多种服务注册中心(如 Nacos、Eureka、Consul),适合异构系统环境[^3]。 - 通过插件替代 Spring Cloud Gateway 的 Filter 过滤器,例如使用 `limit-req` 插件实现限流。 - **适用场景**:需统一管理多注册中心且对性能要求较高的企业。 2. **ShenYu(Apache ShenYu)** - **特点**:国产开源 API 网关,支持 HTTP、Dubbo、gRPC 等多种协议,提供鉴权、监控、灰度发布等功能。 - **优势**: - 与 Spring Cloud 生态无缝集成,支持通过注解或配置文件定义路由规则。 - 社区活跃,中文文档完善。 3. **云服务商提供的网关** - **阿里云微服务引擎(MSE)**:托管式 API 网关,兼容 Spring Cloud 和 Dubbo,提供全链路灰度、服务治理能力[^4]。 - **腾讯云 TSE Mesh**:基于 Envoy 的 API 网关,支持服务发现、流量控制,适配 Spring Cloud 微服务架构[^4]。 - **华为云 CSE**:提供统一网关服务,支持多协议转发和动态配置。 --- #### 二、适配方法 1. **直接替换为 APISIX** - **步骤**: - 使用 APISIX 的 `routes` 配置替代 Spring Cloud Gateway 的 `Predicate` 和 `Filter`。 - 通过插件(如 `proxy-rewrite`)实现请求路径重写和负载均衡。 - **示例配置**: ```yaml routes: - uri: /service/** upstream: nodes: "nacos-service:8080": 1 plugins: limit-req: rate: 1000 ``` 2. **结合 Spring Cloud Alibaba 生态** - 使用 **Nacos** 替代 Eureka 作为服务注册中心,通过 **Sentinel** 实现熔断和限流[^1]。 - 在 Spring Cloud Gateway 中集成国产组件: ```yaml spring: cloud: gateway: routes: - id: nacos_route uri: lb://nacos-service predicates: - Path=/api/** ``` 3. **渐进式迁移** - **混合部署**:保留 Spring Cloud Gateway 处理部分流量,逐步将新服务迁移至 APISIX 或 ShenYu。 - **兼容性适配**:通过网关层统一转发请求,屏蔽后端服务差异。 --- #### 三、选型建议 | 方案 | 性能 | 社区支持 | 与 Spring Cloud 兼容性 | 适用场景 | |---------------|------|----------|------------------------|------------------------| | APISIX | 高 | 活跃 | 需插件适配[^3] | 异构系统、高并发场景 | | ShenYu | 中 | 中等 | 原生支持 | 多协议、混合技术栈 | | 云服务商网关 | 高 | 商业支持 | 部分兼容 | 云原生、快速部署需求 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

API7.ai 技术团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值