业务网关的落地实践

本文介绍了在微服务架构下,业务网关的重要性和自研过程。通过对比Zuul和SpringCloud Gateway,选择自研网关以支持dubbo协议和服务编排。详细阐述了协议转换、服务编排的创新点,以及嵌入式网关的实现,提高了系统的人效和故障处理能力。

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

前言

随着系统规模变大、复杂度越来越高,微服务架构渐渐成为主流。当一个单体应用被拆分成许许多多的微服务应用后,也带来了一些问题。一些与业务非强相关的功能,比如权限控制、日志输出、数据加密、熔断限流等,每个微服务应用都需要,因此存在着大量重复的代码实现。而且由于系统的迭代、人员的更替,各个微服务中这些功能的实现细节出现了较大的差异,导致维护成本变高。另一方面,原先单体应用下非常容易做的接口管理,在服务拆分后没有了一个集中管理的地方,无法统计已存在哪些接口、接口定义是什么、运行状态如何。

网关就是为了解决上述问题。作为微服务体系中的核心基础设施,一般需要具备接口管理、协议适配、熔断限流、安全防护等功能,各种开源的网关产品(比如 zuul)都提供了优秀高可扩展性的架构、可以很方便的实现我们需要的一些功能、比如鉴权、日志监控、熔断限流等。

但是,仅有这些功能还不够。企业内部系统一般都是异构的,存在多种协议的接口,而对外提供服务的接口依然是 http 协议的。因此,协议转换是非常现实的需求。还有数据聚合的能力,开源产品提供的都是一对一路由功能,并不直接提供聚合、编排的能力。而在实际开发中,需要对一些小接口进行聚合是很常见的,如果需要去写代码、发布就会很繁琐,而且以后小接口升级还得同步更新。

因此,我们参考 SpringCloud 网关产品的优秀设计理念,在基础网关的功能上支持多种下游协议、支持服务编排功能,并提供可视化的配置平台。

1 技术选型

1.1 方案对比

我们选择了 Java 微服务体系中三个主流的 API 网关框架 Zuul1、Zuul2 和 SpringCloud Gatewa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值