Dubbo RPC MockServer的设计和实现
发布时间
阅读量:
阅读量
1. MockServer需求
- 支持通过RPC接口处理请求与响应的数据
- 调用方只需进行少量修改即可集成RPC Mock
- 可以平滑地切换API版本
- 兼容预发布及生产环境中的Mock实现
2. 设计目标
- 对代码改动极为有限的情况下,在仅需微小修改即可实现使用Mock。
- 采用 Mock 技术使得不同场景下的调用来保持完全独立。
- 在预发布及生产环境中可完全忽略 Mock 的影响。
- 简便性提升:便于通过 Web 用户界面进行配置设置。
- 确保系统能够轻松应对基于不同 API 版本的变化。
3. 设计思路
-
提供自定义注解声明要mock的服务 -> 代码极少侵入
- 方案对比 -> 调用隔离
- 方案一:基于原有协议DubboProtocol实现,并使真实交互与虚拟交互采用相同的通信机制。
- 方案二:新增一个专门处理虚拟交互的数据传输通道,在底层将所有后续的通信行为映射到实际的数据流中,并避免通过上层的Invoker和Proxy进行中间处理。
- 方案三:通过扩展 MockServiceConfig 中的相关组件配置文件,并引入新的服务组件 MockRegistry 来管理虚拟服务注册流程。
- 方案对比 -> 调用隔离
-
环境隔离 -> 环境中的分离机制(Beanprintin
全部评论 (0)
还没有任何评论哟~
