Dubbo 服务注册与发现

Dubbo 服务注册与发现

前言

大家好,今天开始给大家分享 — Dubbo 专题之 Dubbo 服务注册与发现:在上个章节中我们简单的介绍了 Dubbo 中的四大角色,其中服务注册和服务发现就涉及到我们把一个本地服务暴露给远程客户端调用和本地客户端引用一个远程服务的过程。那么我们现在就开始吧!

1. 什么是服务注册

根据上个章节的讨论,我们可以知道服务提供者和服务消费者都会向注册中心注册服务相关的元信息(具体元信息请查阅上个章节)。当我们需要暴露一个服务给其他应用端调用时那么应用端是怎样知道我们的服务在哪里?暴露了什么接口?通讯端口是多少?这些信息客户端是怎样获取的呢?这些都需要我们的服务提供者向我们的注册中心注册,消费端获取这些注册元信息再进行远程调用。那么服务提供者向注册中心注册元信息的过程就是服务注册。整个服务注册过程大致包括了:参数检测,URL 组装、本地服务导出,远程服务导出、注册中心服务注册。

2. 什么是服务引用

在 Dubbo 中服务引用发生在两种情况分别是:Spring 容器回调生命周期方法 afterPropertiesSet 和服务被注入到其他类引用的时候。很明显第一种是只要 Spring 容器启动都会去回调所有 afterPropertiesSet 方法进行回调属于一种饿汉式方式(一上来就开干),而另外一种则是在我们注入使用的时候属于懒汉式方式(使用的时候才发生关系)。两种方式各有优缺点:饿汉式可以在应用容器启动时候进行合法性检测,而懒汉式在使用时加载提高了应用启动速度但是也带来了一些只有在使用时才能发现的问题。

Tips:我上面说的是 Dubbo 2.6.x 及以前版本,在 Dubbo 2.7.x 中只存在第二种。那么服务的引用简单来说就是获取对远程服务调用的代理对象。

3. Dubbo 中的服务注册与发现流程

  • 服务注册流程

    Dubbo服务导出简要版

剩余70%内容付费后可查看
0