服务发现是微服务架构体系中最关键的组件之一。Nacos 除了可以作为配置中心,也可以用于服务发现,服务端将接口注册到 Nacos 中,消费端动态获取服务列表,使用特定的负载算法选择其中一个服务来完成服务的调用。在这篇文章里,使用官方的代码实例来学习 Nacos 服务发现功能。
实例介绍
实例包含两个程序,一个是服务提供者用于实现特定的功能,是服务的提供者,一个是服务的消费者,是服务的调用方。
版本依赖
在这里我们使用 Spring Cloud Alibaba 来引入 Nacos, 它会依赖 Springboot 和 SpringCloud 的版本。三者的版本关系如下:
1 | <properties> |
三者之间的版本依赖关系,可以在官网查看:版本说明 Wiki
引入 Nacos Discovery Starter
使用 Nacos Discovery Starter 引入 Nacos 的服务发现功能。
1 | <dependency> |
配置服务提供者
配置服务提供者,可以将其服务注册到 Nacos server 上。
配置 application.yml(propertities)
设置服务器的端口、Nacos 的地址、用户名及密码信息。
1 | server: |
开启服务发现
通过 Spring Cloud 原生注解 @EnableDiscoveryClient 开启服务注册发现功能
1 |
|
配置服务消费者
配置服务消费者,服务消费者可以通过 Nacos 的服务注册发现功能从 Nacos server 上获取到它要调用的服务。
配置 application.yml(propertities)
配置服务器的端口、Nacos 的地址、用户名及密码信息。
1 | server: |
开启服务发现
通过 Spring Cloud 原生注解 @EnableDiscoveryClient 开启服务注册发现功能。给 RestTemplate 实例添加 @LoadBalanced 注解,开启 @LoadBalanced 与 Ribbon 的集成:
1 |
|
启动并测试
启动 ProviderApplication 和 ConsumerApplication ,调用 http://localhost:8080/echo/2022,返回内容为 Hello Nacos Discovery 2022。
代码库:https://github.com/noahsarkzhang-ts/springboot-lab
参考: