SOFAGW 网关:安全可信的跨域 RPC/消息互通解决方案
最编程
2024-04-18 12:00:19
...
本文将介绍 SOFAGW 互通网关,首先切入在跨站点通信时碰到的核心痛点,引入 SOFAGW 互通网关的解决方案,会重点说明如何解决在安全、互通、接入成本、高效等几方面问题,介绍 SOFAGW 网关的内部实现架构,展示 SOFAGW 网关达成的业务成果。
业务痛点
思路1:为每个业务创建跨域 VIP
-
很多服务需要开 VIP 口子,服务多了之后,VIP 难以维护; -
VIP 的 ACL 控制很弱,只能基于 IP 端口或 IP 段控制,不能按业务应用或服务来做控制; -
安全管控能力很弱,对请求不可审计; 业务适配改造工作量大,技术栈不统一,存在多种 RPC 框架。
思路2:实现一个高效可信的互通网关,来承接站点之间的通信代理
这就是我们采用的多站点互相通信的解决方案,下面详细介绍我们的互通方案和重点解决的问题。
解决方案:SOFAGW 互通网关
鉴于上面提到的问题,我们研发了 SOFAGW 互通网关,致力于实现一个简单高效、安全可信的跨域 RPC/消息 互通网关。
-
在 SOFAGW 网关上,申请接入需要互通的 RPC 服务。接入后,消费方 SOFAGW 网关会把这个 RPC 服务发布到本站点注册中心上,服务方 SOFAGW 网关会从注册中心订阅这个 RPC 服务提供方地址。 -
消费方应用通过注册中心订阅到目标服务是本站点的 SOFAGW,把请求发送到本站点的 SOFAGW。 -
本站点的 SOFAGW 根据 API 配置信息,把请求转发到对端站点的 SOFAGW。 -
对端站点的 SOFAGW 根据注册中心订阅到的地址,把请求发送给真实的服务提供方。 完成跨展达 RPC 通信。
-
在 SOFAGW 网关上,申请需要接入互通的消息服务。 -
客户端把消息投递到本站点的消息中心,消息中心把消息封装成 RPC 请求发送到本站点 SOFAGW。 -
本站点的 SOFAGW 根据 API 配置信息,把请求转发到对端站点的 SOFAGW。 -
对端站点的 SOFAGW 把请求发送到消息中心,消息中心再把消息投递到真实的消费方。 -
完成跨站点消息投递 。
1、安全通信
网络安全
-
SOFAGW 网关会给不同站点提供不同的访问域名(这些域名都会解析到 SOFAGW 的 VIP 上)。 -
SOFAGW 之间通过 mTLS 双向认证通过后,可以确认请求的域名( host )可信,也就是 C 站点的应用无法用B 站点的域名与 A 站点的 SOFAGW 网关建立 TLS 连接。 SOFAGW 会通过请求头里的 host + path 路由做路由转发,C 站点的请求无法匹配上提供给 B 站点的域名,也就无法访问到提供给 B 站点的服务。
上一篇: 域名申请和备案步骤说明(阿里云)
下一篇: 光环博客增加了 CDN 加速功能