SpringCloud整合Nacos实现注册发现

3 篇文章 1 订阅
3 篇文章 0 订阅

1、应用场景

服务的统一注册发现

2、依赖关系

2.1版本依赖关系

Spring Cloud Version

Spring Cloud Alibaba Version

Spring Boot Version

Spring Cloud 2020.0.0

2021.1

2.4.2

Spring Cloud Hoxton.SR8

2.2.5.RELEASE

2.3.2.RELEASE

Spring Cloud Greenwich.SR6

2.1.4.RELEASE

2.1.13.RELEASE

Spring Cloud Hoxton.SR3

2.2.1.RELEASE

2.2.5.RELEASE

Spring Cloud Hoxton.RELEASE

2.2.0.RELEASE

2.2.X.RELEASE

Spring Cloud Greenwich

2.1.2.RELEASE

2.1.X.RELEASE

Spring Cloud Finchley

2.0.4.RELEASE(停止维护,建议升级)

2.0.X.RELEASE

Spring Cloud Edgware

1.5.1.RELEASE(停止维护,建议升级)

2.2组件版本关系

Spring Cloud Alibaba Version

Sentinel Version

Nacos Version

RocketMQ Version

Dubbo Version

Seata Version

2021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE

1.8.0

1.4.1

4.4.0

2.7.8

1.3.0

2.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE

1.8.0

1.3.3

4.4.0

2.7.8

1.3.0

2.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE

1.7.1

1.2.1

4.4.0

2.7.6

1.2.0

2.2.0.RELEASE

1.7.1

1.1.4

4.4.0

2.7.4.1

1.0.0

2.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE

1.7.0

1.1.4

4.4.0

2.7.3

0.9.0

2.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE

1.6.3

1.1.1

4.4.0

2.7.3

0.7.1

2.3、本案例采用的技术栈版本

JDK:1.8

maven: 3.8.1

Spring Boot: 2.3.2.RELEASE

Spring Cloud: Hoxton.SR8

Spring Cloud Alibaba: 2.2.5.RELEASE

开发工具: IntelliJ IDEA 2021.1 x64

系统: Windows 10

3、Nacos的下载安装

https://blog.csdn.net/supersolon/article/details/117521085?spm=1001.2014.3001.5501

4、微服务搭建

https://blog.csdn.net/supersolon/article/details/117709129?spm=1001.2014.3001.5501

5、整合Nacos注册发现服务

通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现。

下面以把iot-usercenter服务,注册进nacos为例进行讲解(iot-common步骤一样,不再赘述)。

5.1、配置pom.xml文件

5.1.1、父工程pom文件

引入spring-cloud-alibaba的依赖

<!-- 声明依赖 springCloudAlibaba -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>${spring-cloud-alibaba.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

完整的pom.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.iot</groupId>
    <artifactId>iot-plat</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>iot-common</module>
        <module>iot-usercenter</module>
    </modules>
    <!-- 版本号统一管理 -->
    <properties>
        <!-- 指定SpringBoot版本 -->
        <spring-boot.version>2.3.2.RELEASE</spring-boot.version>
        <!-- 指定SpringCloud版本 -->
        <spring-cloud.version>Hoxton.SR8</spring-cloud.version>
        <!-- 指定SpringCloudAlibaba版本 -->
        <spring-cloud-alibaba.version>2.2.5.RELEASE</spring-cloud-alibaba.version>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <!-- 版本统一管理 -->
    <dependencyManagement>
        <dependencies>
            <!-- 声明依赖 springBoot -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- 声明依赖 springCloud -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- 声明依赖 springCloudAlibaba -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

5.1.2、子工程pom文件

声明nacos的依赖

<!-- nacos 注册发现 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

完整的pom.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>iot-plat</artifactId>
        <groupId>com.iot</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>iot-usercenter</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- springBoot -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- nacos 注册发现 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>

</project>

5.2、配置application.yml文件

添加nacos服务信息,配置nacos服务地址

application.yml内容如下:

server:
  port: 9091# 服务端口
spring:
  application:
    name: iot-usercenter  #服务名称
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

5.3、启动类添加@EnableDiscoveryClient注解

UserCenterApplication启动类,添加 @EnableDiscoveryClient 注解,注明服务能被注册发现。

代码如下:

package com.iot.usercenter;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class UserCenterApplication {
    public static void main(String[] args){
        SpringApplication.run(UserCenterApplication.class,args);
    }
}

5.4、nacos服务管理

5.4.1、登录nacos

地址:http://localhost:8848/nacos

用户名密码:nacos/nacos

5.4.2、服务列表

重启服务

页面看到iot-usercenter服务的信息

5.4.3、详情

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值