Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说nacos的面试题_nacos注册中心原理面试,希望能够帮助你!!!。
Dubbo 融合 Nacos 成为注册中心
Nacos 作为 Dubbo 生态系统中重要的注册中心实现,本文将会介绍如何进行 Dubbo 对接 Nacos 注册中心的工作。
请确保后台已经启动 Nacos 服务,可先行参考 Nacos 快速入门。
Dubbo 融合 Nacos 成为注册中心的操作步骤非常简单,大致步骤可分为“增加 Maven 依赖”以及“配置注册中心“。
只需要依赖Dubbo客户端即可,关于推荐的使用版本,请参考Dubbo官方文档或者咨询Dubbo开发人员:
假设您 Dubbo 应用使用 Spring Framework 装配,将有两种配置方法可选,分别为:Dubbo Spring 外部化配置以及 Spring XML 配置文件以及,笔者强烈推荐前者。
Dubbo Spring 外部化配置是由 Dubbo 引入的新特性,可通过 Spring 属性自动地生成并绑定 Dubbo 配置 Bean,实现配置简化,并且降低微服务开发门槛。
假设您 Dubbo 应用的使用 Nacos 作为注册中心,并且其服务器 IP 地址为:,同时,该注册地址作为 Dubbo 外部化配置属性存储在 文件,如下所示:
随后,重启您的 Dubbo 应用,Dubbo 的服务提供和消费信息在 Nacos 控制台中可以显示:
如图所示,服务名前缀为 的信息为服务提供者的元信息, 则代表服务消费者的元信息。点击“详情”可查看服务状态详情:
如果您正在使用 Spring XML 配置文件装配 Dubbo 注册中心的话,请参考下一节。
同样,假设您 Dubbo 应用的使用 Nacos 作为注册中心,并且其服务器 IP 地址为:,并且装配 Spring Bean 在 XML 文件中,如下所示:
重启 Dubbo 应用后,您同样也能发现服务提供方和消费方的注册元信息呈现在 Nacos 控制台中:
您是否觉得配置或切换 Nacos 注册中心超级 Easy 呢?如果您仍旧意犹未尽或者不甚明白的话,可参考以下完整的示例。
以上图片中的元数据源于 Dubbo Spring 注解驱动示例以及 Dubbo Spring XML 配置驱动示例,下面将分别介绍两者,您可以选择自己偏好的编程模型。在正式讨论之前,先来介绍两者的预备工作,因为它们皆依赖 Java 服务接口和实现。同时,请确保本地()环境已启动 Nacos 服务。
完整代码归档位置: https://github.com/nacos-group/nacos-examples/tree/master/nacos-dubbo-example
首先定义示例接口,如下所示:
提供以上接口的实现类:
接口与实现准备妥当后,下面将采用注解驱动和 XML 配置驱动各自实现。
Dubbo 重构了 Spring 注解驱动的编程模型。
其中注解 激活 Dubbo 注解驱动以及外部化配置,其 属性扫描指定 Java 包,将所有标注 的服务接口实现类暴露为 Spring Bean,随即被导出 Dubbo 服务。
是 Spring Framework 3.1 引入的标准导入属性配置资源注解,它将为 Dubbo 提供外部化配置。
同样地, 属性指向 Nacos 注册中心,其他 Dubbo 服务相关的元信息通过 Nacos 注册中心。
同样地, 注解激活 Dubbo 注解驱动和外部化配置,不过当前属于服务消费者,无需指定 Java 包名扫描标注 的服务实现。
是 Dubbo 远程服务的依赖注入注解,需要服务提供方和消费端约定接口(interface)、版本(version)以及分组(group)信息。在当前服务消费示例中, 的服务版本来源于属性配置文件 。
部分代码则说明当 Bean 初始化时,执行十次 Dubbo 远程方法调用。
在本地启动两次 ,注册中心将出现两个健康服务:
再运行 ,运行结果如下:
运行无误,并且服务消费方使用了负载均衡策略,将十次 RPC 调用平均分摊到两个 Dubbo 服务提供方实例中。
Spring XML 配置驱动是传统 Spring 装配组件的编程模型。
同样地,先启动两个 引导类,观察 Nacos 注册中心服务提供者变化:
XML 配置驱动的服务版本为 ,因此注册服务无误。
再运行服务消费者引导类 ,观察控制台输出内容:
结果同样运行和负载均衡正常,不过由于当前示例尚未添加属性 的缘故,因此,“name”部分信息输出为 。
如果您或喜爱 Dubbo 以及 Nacos 等开源工程,不妨为它们点 “star”,加油打气链接:
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。