Spring Cloud Alibaba 服务发现例子

一、需求

完成一个简单的例子,使用 ​​Spring Cloud Alibaba​​ 完成服务的注册与发现

1、提供者完成的功能

1、服务提供者注册到​​nacos​​上

spring.cloud.nacos.discovery.register-enabled = true

2、配置元数据信息

spring.cloud.nacos.discovery.metadata  (key value) 格式

2、消费者完成的功能

1、只作为消费者,不注册到 ​​nacos​​ 上

spring.cloud.nacos.discovery.register-enabled = false

2、自定义注册到 ​​nacos​​ 上的服务名

自定义注册到 nacos 上的服务名,默认是获取的spring.application.name的值

3、配置​​nacos​​的服务地址

spring.cloud.nacos.discovery.server-addr=地址,不需要[http|https]

4、​​nacos​​​集成​​ribbon​

ribbon.nacos.enabled=true      true=集成,false=不集成

3、可以附加的额外配置

1、配置命名空间,用于区分不同的环境,比如 dev、local等,需要写 命名空间ID 的值

spring.cloud.nacos.discovery.namespace

2、配置组,不同的服务可以划分到一个组,默认是 DEFAULT_GROUP

spring.cloud.nacos.discovery.group

3、配置集群,默认值是 DEFAULT

spring.cloud.nacos.discovery.cluster-name

二、实现步骤

1、总的依赖引入

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR8</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

2、服务提供者和发现者,引入服务发现依赖

<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

3、代码实现

代码就是 普通的 spring boot 代码,测试微服务之间的调用,可以通过 ​​ribbon​​​ 或 ​​feign​​ 等。此处略,参考下方的代码实现。

三、代码实现

​https://gitee.com/huan1993/spring-cloud-alibaba-parent/tree/master/nacos-discovery​

四、参考文档

1、Spring Cloud Alibaba 和 Spring Cloud 以及 Spring Boot 之间版本的选择
​​​https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明​

2、Spring Cloud Alibaba 服务发现例子
​​​官方例子​