13 集成 K8s
dubbo 基于 3.2.6 版本
如果我们将
dubbo应用部署在k8s环境中,我们就可以使用k8s作为注册中心。
服务调用流程
provider使用KubernetesServiceDiscovery#doRegister注册服务实例,元数据信息会存放在pod对象上.consumer使用ServiceNameMapping#getMapping来获取consumerUrl对应的serviceName.consumer使用KubernetesServiceDiscovery#getInstances来获取serviceName对应的服务实例.- 获取的服务实例上面就会有元数据信息,然后就会使用元数据信息来获取服务实例的所有
url列表. - 根据这些 url 列表来创建对应的
invoker,比如DubboInvoker,TripleInvoker.
KubernetesServiceDiscovery#doRegister 注册实例
源码位置: org.apache.dubbo.registry.kubernetes.KubernetesServiceDiscovery#KubernetesServiceDiscovery