Dubbo 静态服务

Dubbo 静态服务

前言

大家好,今天开始给大家分享 — Dubbo 专题之 Dubbo 静态服务。在上一个章节我们学习了 Dubbo 服务只注册或只订阅两种模式。那么在这个章节我们将介绍 Dubbo 静态服务。有的小伙伴会问我们前面学习的服务注册是静态的服务还是动态服务呢?答案是前面所有章节介绍的服务注册都是动态的,所谓的动态就是服务的上下线不需要我们手动控制,通过服务应用的启动和退出服务自动在注册中心进行上下线配置。而静态服务则需要我们手动启用和禁用服务。那下面就让我详细学习下什么是静态服务吧!

1. 只订阅和注册服务简介

学习过前面章节的小伙伴都已经知道了我们的服务上下线是和我们的应用启动和退出生命周期相关,我们不需要认为的手动控制服务上下线。那这里的静态服务是怎么回事呢?很明显静态服务和动态服务是恰恰相反的,当我们配置一个服务为静态服务时,那么当我们的应用程序启动时会向注册中心注册服务,但是此时对于调用此服务的消费者来说是不可以见的,需要我们手动启用此服务。同理,当我们的应用程序退出时注册中心的服务不会自动下线,也就是说应用程序退出后注册中心仍然保留此服务的元数据,需要我们手动删除或者下线服务。

静态服务

在图中上部分服务提供者注册服务后我们需要在注册中心手动配置服务上线,在下部分中我们服务提供者下线我们同样在注册中心手动配置服务下线。

2. 配置方式

同样在 Dubbo 中提供两种配置方式:

“`xml
<dubbo:registry address="zookeeper://127.0.0.1:2181" dynamic="false" />
“`

“`xml
<dubbo:registry address="zookeeper://127.0.0.1:2181?dynamic=false" />
“`

上面两种方式最终都会被转换为 URL 形式。

3. 使用场景

有小伙伴会问,这种手动配置方式太麻烦有什么用呢?还不如动态方式不用人工去干预。确实在我们大规模应用部署中一般是不会这样干的,但一些特殊场景可能需要人工干预服务的上下线。例如:

  1. 假设我们的某个服务在固定时间或触发某种条件时我们才对外提供服务,此时我们就可以通过这种方式来调整服务的上下线。
  2. 当我们在应用部署过可能存在多版本的 Dubbo 服务,此时假设某个版本服务不再对外提供服务就可以通过手动调整服务下线。假设此时可能存在某些用户并没有切换到新版本,那么我们可以根据运维情况同样可以快速恢复服务上线。


4. 示例演示

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