本文介绍MSHA商业产品与开源产品之间在架构、通用能力、辅助能力等方面的异同。
架构支持
架构 |
商业产品 |
开源产品 |
异地双活 |
✅ |
✅ |
同城多活 |
✅ |
❌ |
异地应用双活 |
✅ |
❌ |
异地双活
组件 |
功能大类 |
具体功能说明 |
商业产品 |
开源产品 |
网关 |
路由 |
范围路由 |
✅ |
✅ |
网关 |
路由 |
精准路由 |
✅ |
❌ |
服务层SpringCloud |
路由 |
范围路由 |
✅ |
❌ |
服务层SpringCloud |
路由 |
精准路由 |
✅ |
❌ |
服务层SpringCloud |
路由 |
单元保护(不属于本单元的调用直接失败) |
✅ |
❌ |
服务层Dubbo |
路由 |
范围路由 |
✅ |
✅ |
服务层Dubbo |
路由 |
精准路由 |
✅ |
❌ |
服务层Dubbo |
路由 |
单元保护(不属于本单元的调用直接失败) |
✅ |
✅ |
消息层MQ |
路由 |
发布打标(路由ID) |
✅ |
❌ |
消息层MQ |
路由 |
消费过滤(依据路由ID计算消费单元) |
✅ |
❌ |
消息层MQ |
Failover |
切流时重置位点,消息不丢 |
✅ |
❌ |
数据层MySQL |
路由 |
数据保护,防止多点写脏数据 |
✅ |
✅ |
数据层MySQL |
Failover |
路由ID维度:切换数据源和延迟禁写,包括:
|
✅ |
❌ |
通用能力
组件 |
功能大类 |
具体功能说明 |
商业产品 |
开源产品 |
网关 |
路由 |
条件路由(入口流量调度) |
✅ |
❌ |
注册中心同步 |
服务发现 |
跨集群的服务同步 |
✅ |
❌ |
切流模块 |
命令通道 |
控制面和数据面的信道打通 |
✅ |
✅ |
切流模块 |
切流 |
一键切流(完成动作编排、规则计算和下发) |
✅ |
❌ |
切流模块 |
切流 |
自定义动作 |
✅ |
❌ |
辅助能力
运维
组件 |
功能大类 |
具体功能说明 |
商业产品 |
开源产品 |
网关 |
健康检查 |
网关实例巡检,异常透出。 |
✅ |
❌ |
网关 |
健康检查 |
Upstream巡检,自动摘除和恢复。 |
✅ |
❌ |
网关 |
发布 |
支持版本管理和灰度发布。 |
✅ |
❌ |
注册中心同步 |
健康检查 |
实例巡检,异常透出。 |
✅ |
❌ |
OPS |
报警 |
对所有相关异常进行透出和报警。 |
✅ |
❌ |
可观测
组件 |
功能大类 |
具体功能说明 |
商业产品 |
开源产品 |
网关 |
Metrics |
通用指标和特定架构的指标。 |
✅ |
❌ |
网关 |
Logging |
结构化的AccessLog和ErrorLog。 |
✅ |
✅ |
网关 |
Tracing |
为每个请求生成Trace ID。 |
✅ |
❌ |
注册中心同步 |
Metrics |
任务粒度的同步QPS、RT、错误数。 |
✅ |
❌ |
Agent |
Logging |
- 关键点记录(路由、禁写等)。
- 高频日志(排查)可开关。
|
✅ |
❌ |
Agent |
Metrics |
各个模块切面的QPS、RT、错误率。 |
✅ |
❌ |
数据层 |
Metrics |
同步位点延迟。 |
✅ |
❌ |
消息层 |
Metrics |
同步位点延迟。 |
✅ |
❌ |