nacos的面试题_nacos注册中心原理面试

nacos的面试题_nacos注册中心原理面试Dubbo 融合 Nacos 成为注册中心Dubbo 融合 Nacos 成为注册中心Nacos 作为 Dubbo 生态系统中重要的注册中心实现,本文将会介绍如何进行 Dubbo 对接 Nacos 注册中心的工作。预备工作请确保后台已经启动 Naco

Dubbo 融合 Nacos 成为注册中心

Dubbo 融合 Nacos 成为注册中心

Nacos 作为 Dubbo 生态系统中重要的注册中心实现,本文将会介绍如何进行 Dubbo 对接 Nacos 注册中心的工作。

预备工作

请确保后台已经启动 Nacos 服务,可先行参考 Nacos 快速入门。

快速上手

Dubbo 融合 Nacos 成为注册中心的操作步骤非常简单,大致步骤可分为“增加 Maven 依赖”以及“配置注册中心“。

增加 Maven 依赖

只需要依赖Dubbo客户端即可,关于推荐的使用版本,请参考Dubbo官方文档或者咨询Dubbo开发人员:


配置注册中心

假设您 Dubbo 应用使用 Spring Framework 装配,将有两种配置方法可选,分别为:Dubbo Spring 外部化配置以及 Spring XML 配置文件以及,笔者强烈推荐前者。

Dubbo Spring 外部化配置

Dubbo Spring 外部化配置是由 Dubbo 引入的新特性,可通过 Spring 属性自动地生成并绑定 Dubbo 配置 Bean,实现配置简化,并且降低微服务开发门槛。

假设您 Dubbo 应用的使用 Nacos 作为注册中心,并且其服务器 IP 地址为:,同时,该注册地址作为 Dubbo 外部化配置属性存储在 文件,如下所示:


随后,重启您的 Dubbo 应用,Dubbo 的服务提供和消费信息在 Nacos 控制台中可以显示:

image-20181213103845976-4668726.png | left | 747x284

如图所示,服务名前缀为 的信息为服务提供者的元信息, 则代表服务消费者的元信息。点击“详情”可查看服务状态详情:

image-20181213104145998-4668906.png | left | 747x437

如果您正在使用 Spring XML 配置文件装配 Dubbo 注册中心的话,请参考下一节。

Spring XML 配置文件

同样,假设您 Dubbo 应用的使用 Nacos 作为注册中心,并且其服务器 IP 地址为:,并且装配 Spring Bean 在 XML 文件中,如下所示:


重启 Dubbo 应用后,您同样也能发现服务提供方和消费方的注册元信息呈现在 Nacos 控制台中:

image-20181213113049185-4671849.png | left | 747x274

您是否觉得配置或切换 Nacos 注册中心超级 Easy 呢?如果您仍旧意犹未尽或者不甚明白的话,可参考以下完整的示例。

完整示例

以上图片中的元数据源于 Dubbo Spring 注解驱动示例以及 Dubbo Spring XML 配置驱动示例,下面将分别介绍两者,您可以选择自己偏好的编程模型。在正式讨论之前,先来介绍两者的预备工作,因为它们皆依赖 Java 服务接口和实现。同时,请确保本地()环境已启动 Nacos 服务

示例接口与实现

完整代码归档位置: https://github.com/nacos-group/nacos-examples/tree/master/nacos-dubbo-example

首先定义示例接口,如下所示:


提供以上接口的实现类:


接口与实现准备妥当后,下面将采用注解驱动和 XML 配置驱动各自实现。

Spring 注解驱动示例

Dubbo 重构了 Spring 注解驱动的编程模型。

服务提供方注解驱动实现

  • 定义 Dubbo 提供方外部化配置属性源 –

  • 实现服务提供方引导类 –

其中注解 激活 Dubbo 注解驱动以及外部化配置,其 属性扫描指定 Java 包,将所有标注 的服务接口实现类暴露为 Spring Bean,随即被导出 Dubbo 服务。

是 Spring Framework 3.1 引入的标准导入属性配置资源注解,它将为 Dubbo 提供外部化配置。

服务消费方注解驱动实现

  • 定义 Dubbo 消费方外部化配置属性源 –

同样地, 属性指向 Nacos 注册中心,其他 Dubbo 服务相关的元信息通过 Nacos 注册中心。

  • 实现服务消费方引导类 –

同样地, 注解激活 Dubbo 注解驱动和外部化配置,不过当前属于服务消费者,无需指定 Java 包名扫描标注 的服务实现。

是 Dubbo 远程服务的依赖注入注解,需要服务提供方和消费端约定接口(interface)、版本(version)以及分组(group)信息。在当前服务消费示例中, 的服务版本来源于属性配置文件 。

部分代码则说明当 Bean 初始化时,执行十次 Dubbo 远程方法调用。

运行注解驱动示例

在本地启动两次 ,注册中心将出现两个健康服务:

image-20181213123909636-4675949.png | left | 747x38

再运行 ,运行结果如下:


运行无误,并且服务消费方使用了负载均衡策略,将十次 RPC 调用平均分摊到两个 Dubbo 服务提供方实例中。

Spring XML 配置驱动示例

Spring XML 配置驱动是传统 Spring 装配组件的编程模型。

服务提供方 XML 配置驱动

  • 定义服务提供方 XML 上下文配置文件 –

  • 实现服务提供方引导类 –

服务消费方 XML 配置驱动

  • 定义服务消费方 XML 上下文配置文件 –

  • 实现服务消费方引导类 –

运行 XML 配置驱动示例

同样地,先启动两个 引导类,观察 Nacos 注册中心服务提供者变化:

image-20181213125527201-4676927.png | left | 747x33

XML 配置驱动的服务版本为 ,因此注册服务无误。

再运行服务消费者引导类 ,观察控制台输出内容:


结果同样运行和负载均衡正常,不过由于当前示例尚未添加属性 的缘故,因此,“name”部分信息输出为 。

如果您或喜爱 Dubbo 以及 Nacos 等开源工程,不妨为它们点 “star”,加油打气链接:

  • Apache Dubbo:https://github.com/apache/dubbo
  • Dubbo Nacos Registry:https://github.com/apache/dubbo/tree/master/dubbo-registry/dubbo-registry-nacos
  • Alibaba Nacos:https://github.com/alibaba/nacos

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/9716.html

(0)
上一篇 2024年 5月 11日
下一篇 2024年 5月 11日

相关推荐

关注微信