更新时间:2022-05-10 GMT+08:00
分享

PASSTHROUGH方案

方案介绍

SDK中客户端使用Interface调用目标服务时,修改原有服务发现逻辑。将原有通过Interface查找服务实例,修改为通过接口查找服务名,直接对服务名发起访问。

详细说明

对于Dubbo协议的不同版本会有不同:

  • 2.7.4+版本:2.7.4以上的Cloud Native版本中重构过与Kubernetes一致的服务发现模型,直接可以从Interface关联到服务信息。
  • 2.7.3及之前版本:Dubbo社区版本未提供Interface到Service的二级关系,需要SDK根据自己的实际使用方式来维护Interface到服务的映射关系。如可以使用在服务注册时通过扩展信息的方式提供服务名等信息。

客户实际使用中可以根据自己的SDK使用情况选择灵活的处理方式。对于老版本的SDK可以基于现有的服务注册和服务发现流程,做如下处理:

  1. 在注册信息中扩展Service的定义。在服务部署时会通过环境变量将服务的元数据信息注入到SDK中,包括appname、namespace,分别表示部署的服务名、部署的命名空间。
  2. 在服务启动时向注册中心注册Dubbo接口和Kubernetes服务名和命名空间的关系。
  3. 在客户端发起访问时,根据原有服务发现的流程根据Interface查询到服务的元数据,并用对应的服务信息组装RPC请求。建议在Dubbo请求中使用Attachment扩展字段存储appname、namespace信息。
分享:

    相关文档

    相关产品

close