Advertisement

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)

还没有任何评论哟~