本文介绍MSHA商业产品与开源产品之间在架构、通用能力、辅助能力等方面的异同。

架构支持

架构 商业产品 开源产品
异地双活 ✅ ✅
同城多活 ✅ ❌
异地应用双活 ✅ ❌

异地双活

组件 功能大类 具体功能说明 商业产品 开源产品
网关 路由 范围路由 ✅ ✅
网关 路由 精准路由 ✅ ❌
服务层SpringCloud 路由 范围路由 ✅ ❌
服务层SpringCloud 路由 精准路由 ✅ ❌
服务层SpringCloud 路由 单元保护(不属于本单元的调用直接失败) ✅ ❌
服务层Dubbo 路由 范围路由 ✅ ✅
服务层Dubbo 路由 精准路由 ✅ ❌
服务层Dubbo 路由 单元保护(不属于本单元的调用直接失败) ✅ ✅
消息层MQ 路由 发布打标(路由ID) ✅ ❌
消息层MQ 路由 消费过滤(依据路由ID计算消费单元) ✅ ❌
消息层MQ Failover 切流时重置位点,消息不丢 ✅ ❌
数据层MySQL 路由 数据保护,防止多点写脏数据 ✅ ✅
数据层MySQL Failover 路由ID维度:切换数据源和延迟禁写,包括:
  • PolarDB
  • DRDS
✅ ❌

通用能力

组件 功能大类 具体功能说明 商业产品 开源产品
网关 路由 条件路由(入口流量调度) ✅ ❌
注册中心同步 服务发现 跨集群的服务同步 ✅ ❌
切流模块 命令通道 控制面和数据面的信道打通 ✅ ✅
切流模块 切流 一键切流(完成动作编排、规则计算和下发) ✅ ❌
切流模块 切流 自定义动作 ✅ ❌

辅助能力

运维

组件 功能大类 具体功能说明 商业产品 开源产品
网关 健康检查 网关实例巡检,异常透出。 ✅ ❌
网关 健康检查 Upstream巡检,自动摘除和恢复。 ✅ ❌
网关 发布 支持版本管理和灰度发布。 ✅ ❌
注册中心同步 健康检查 实例巡检,异常透出。 ✅ ❌
OPS 报警 对所有相关异常进行透出和报警。 ✅ ❌

可观测

组件 功能大类 具体功能说明 商业产品 开源产品
网关 Metrics 通用指标和特定架构的指标。 ✅ ❌
网关 Logging 结构化的AccessLog和ErrorLog。 ✅ ✅
网关 Tracing 为每个请求生成Trace ID。 ✅ ❌
注册中心同步 Metrics 任务粒度的同步QPS、RT、错误数。 ✅ ❌
Agent Logging
  • 关键点记录(路由、禁写等)。
  • 高频日志(排查)可开关。
✅ ❌
Agent Metrics 各个模块切面的QPS、RT、错误率。 ✅ ❌
数据层 Metrics 同步位点延迟。 ✅ ❌
消息层 Metrics 同步位点延迟。 ✅ ❌