一、Spring Cloud 整合 Nacos

先做初步添加整合,后续再深入研究

版本

名称版本
Spring Boot2.6.13
Spring Cloud2021.0.5
Spring Cloud Alibaba2021.0.5.0
Nacos2.2.0

配置Nacos

  1. 配置数据库nacos->conf找到mysql-schema.sql ,在数据库建库nacos并执行该脚本

    在这里插入图片描述

  2. 修改applicaion.properties文件,其中将默认连接方式修改为MySQL数据库连接

    在这里插入图片描述

  3. 配置完以上内容后就可以启动nacos服务了,选择nacos->bin目录。 因为Nacos默认的启动方式集群模式,需要切换成单机模式才可以运行。打开cmd切换到nacos的bin文件夹下,输入命令startup.cmd -m standalone,出现如下显示就表示启动成功了

    在这里插入图片描述

  4. 访问Nacos网页看看效果,cmd启动完了会有启动地址,如上图红框地址。默认的账号密码均为 nacos

    在这里插入图片描述

    1. 配置管理:让项目读取nacos上面的配置
    2. 服务管理:可以看到注册到注册中心的所有服务以及实例数等信息
    3. 权限控制:可以设置负载均衡等
    4. 命名空间:可以设置各种运行环境的配置,例如(dev,test,prod等,各个命名空间内存的配置和服务互不干预,这样就可以存在服务同名的情况)
  5. 完成上面操作就可以添加新模块了

注意事项:必须先启动nacos,才能启动cloud的项目

创建 Spring Cloud Alibaba 项目

创建父模块(easy-spring-cloud)

  1. 创建一个新项目,把多余的文件删除

    在这里插入图片描述

  2. 修改父模块的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.6.13</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.easy</groupId>
        <artifactId>easy-spring-cloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>pom</packaging>
        <name>easy-spring-cloud</name>
        <description>easy-spring-cloud</description>
    
        <!-- 每新增一个子模块就把名字添加进来 -->
        <modules>
          
        </modules>
    
        <properties>
            <java.version>1.8</java.version>
            <!-- 编译时的编码 -->
            <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
            <!-- 文件拷贝时的编码 -->
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <spring-boot.version>2.6.13</spring-boot.version>
            <spring-cloud.version>2021.0.5</spring-cloud.version>
            <spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <!-- 全局引入下载依赖地址,并不会引入依赖 -->
        <dependencyManagement>
            <dependencies>
                <!-- Spring Boot 相关依赖 -->
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>${spring-boot.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <!-- Spring Cloud 相关依赖 -->
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <!-- Spring Cloud Alibaba 相关依赖 -->
                <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>
    
        <build>
            <plugins>
                <!-- Java编译插件 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <encoding>${maven.compiler.encoding}</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    

创建子模块(producer

  1. 修改system模块pom.xml文件

    在这里插入图片描述

    添加XXX-XXX-alibaba-nacos-discovery依赖,这个是Nacos的注册中心依赖

    <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    
        <parent>
            <groupId>com.easy.cloud</groupId>
            <artifactId>producer</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </parent>
    
        <modelVersion>4.0.0</modelVersion>
        <artifactId>producer</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>producer</name>
        <description>生产者</description>
    
        <properties>
            <java.version>1.8</java.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <spring-boot.version>2.6.13</spring-boot.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <!-- 注册中心 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <excludes>
                            <exclude>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok</artifactId>
                            </exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    </project>
    
  2. 在启动类ProducerApplication添加@EnableDiscoveryClient注解,这样才能注册到Nacos中

    在这里插入图片描述

  3. 修改resources/application.yaml文件

    server:
      port: 8010
    spring:
      application:
        name: producer-server  #服务名称
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848  #nacos的服务注册中心地址
    
  4. 创建一个controller测试一下

    package com.easy.cloud.controller;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    
    /**
     * 测试类
     *
     * @author XY
     * @date 2024/2/20 16:40
     */
    @RestController
    public class ProducerTestController {
        @GetMapping("/test01")
        public String test01(){
            return "访问生产者(Producer) -> test01";
        }
    }
    
  5. 启动项目,去Nacos中看看

    在这里插入图片描述

  6. 访问地址:http://localhost:8010/test01Producer模块搭建完成

    在这里插入图片描述

创建子模块(consumer

  1. 和创建producer模块一样,改一下端口号和服务名就可以

    server:
      port: 8011
    spring:
      application:
        name: consumer-server  #服务名称
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848  #nacos的服务注册中心地址
    
  2. 启动完成后Nacos注册服务中心可以看到task服务已经注册

    在这里插入图片描述

  3. 访问地址:http://localhost:8001/test01task模块已经搭建完成🎇🎇🎇

    在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值