先做初步添加整合,后续再深入研究
版本
名称 | 版本 |
---|---|
Spring Boot | 2.6.13 |
Spring Cloud | 2021.0.5 |
Spring Cloud Alibaba | 2021.0.5.0 |
Nacos | 2.2.0 |
配置Nacos
-
配置数据库
nacos->conf
找到mysql-schema.sql
,在数据库建库nacos并执行该脚本 -
修改
applicaion.properties
文件,其中将默认连接方式修改为MySQL数据库连接 -
配置完以上内容后就可以启动nacos服务了,选择
nacos->bin
目录。 因为Nacos默认的启动方式集群模式,需要切换成单机模式才可以运行。打开cmd切换到nacos的bin文件夹下,输入命令startup.cmd -m standalone
,出现如下显示就表示启动成功了 -
访问Nacos网页看看效果,cmd启动完了会有启动地址,如上图红框地址。默认的账号密码均为 nacos
- 配置管理:让项目读取nacos上面的配置
- 服务管理:可以看到注册到注册中心的所有服务以及实例数等信息
- 权限控制:可以设置负载均衡等
- 命名空间:可以设置各种运行环境的配置,例如(dev,test,prod等,各个命名空间内存的配置和服务互不干预,这样就可以存在服务同名的情况)
-
完成上面操作就可以添加新模块了
注意事项:必须先启动nacos,才能启动cloud的项目
创建 Spring Cloud Alibaba 项目
创建父模块(easy-spring-cloud)
-
创建一个新项目,把多余的文件删除
-
修改父模块的
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
)
-
修改
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>
-
在启动类
ProducerApplication
添加@EnableDiscoveryClient
注解,这样才能注册到Nacos中 -
修改
resources/application.yaml
文件server: port: 8010 spring: application: name: producer-server #服务名称 cloud: nacos: discovery: server-addr: 127.0.0.1:8848 #nacos的服务注册中心地址
-
创建一个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"; } }
-
启动项目,去Nacos中看看
-
访问地址:
http://localhost:8010/test01
,Producer模块
搭建完成
创建子模块(consumer
)
-
和创建
producer模块
一样,改一下端口号和服务名就可以server: port: 8011 spring: application: name: consumer-server #服务名称 cloud: nacos: discovery: server-addr: 127.0.0.1:8848 #nacos的服务注册中心地址
-
启动完成后Nacos注册服务中心可以看到
task服务
已经注册 -
访问地址:
http://localhost:8001/test01
,task模块
已经搭建完成🎇🎇🎇