Spring Cloud Alibaba中Nacos的安装(Windows平台)以及服务的发现
- 下载安装Nacos
- 解压启动
- 验证是否启动
- 搭建一个简单的Spring Cloud Alibaba项目
- Spring Cloud Alibaba 以及 Nacos的引入
- 如何选择对应的版本
- 服务的注册
- Nacos相关组件的说明
下载安装Nacos
Github下载地址链接
往下滑找到Assets 选择对应的版本下载即可
解压启动
将得到的压缩包下载下来 然后解压到一个合适文件夹
bin
目录下运行startup.cmd -m standalone
命令启动Nacos
执行命令Nacos以单机模式
启动,而不是在集群中运行,其中的-m
代表模式
,standalone
意为单机
验证是否启动
浏览器输入以下地址访问Nacos控制台
http://本机IP:8848/nacos
如果不知道本机ip就打开命令行,输入ipconfig
查看即可
如果顺利运行的话,上述地址应当返回以下界面
搭建一个简单的Spring Cloud Alibaba项目
这里我们要准备一个简单的SpringBoot
项目,
如果不会创建,请参考我的这篇文章:
Maven项目转为SpringBoot项目
Spring Cloud Alibaba 以及 Nacos的引入
这里需要的引入的依赖就几个:Spring Boot
、Spring Cloud Alibaba
、Nacos相关组件
但是问题在于,Spring Cloud Alibaba对组件有着严格的版本要求
,如果版本未选择对,项目就运行不起来。
而且对于Maven的镜像也要注意
,有的镜像中没有对应组件的版本
,会导致下载失败。
如何选择对应的版本
所以在版本选择这里,大家要先去Github
的Spring Cloud Alibaba
看看各版本适配说明去看看。这里推荐几个地址:
github上的spring-cloud-alibaba
alibab给出的版本说明
这里简单介绍了Spring Cloud Alibaba
与SpringBoot
、及其一些所需要的组件(如Nacos、Seata等)
对应的版本关系,虽然只是一小部分
官方给出的自动选择版本
这是我最喜欢的,它会自动帮你选择所需要的组件的版本信息
,并且保证是适配
的
勾选上对应的Spring Boot
版本以后,它会自动
帮你选择Spring Cloud Alibaba以及你勾选的其他组件版本
选择完成以后点击下面的浏览
即可看到其创建的简单示例项目中的pom
文件中的对应版本
服务的注册
这里我们要用到的几个依赖分别是:Spring Boot
、Spring Cloud Alibaba
、Nacos-Discovery(服务的注册与发现)
三个主要的依赖
我这里选择的版本是:
Spring Boot
版本
<!-- spring boot的版本-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
</parent>
spring cloud alibaba以及nacos-discovery
的版本
<!-- spring cloud alibaba的版本-->
<spring-cloud-alibab.version>2021.0.5.0</spring-cloud-alibab.version>
<!-- nacos-discovery的版本-->
<spring-nacos.version>2021.0.5.0</spring-nacos.version>
这里也贴一下整个的pom文件
信息
<?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">
<!-- Maven的版本-->
<modelVersion>4.0.0</modelVersion>
<!-- 打包方式指定为war包-->
<packaging>war</packaging>
<!-- spring boot的版本-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
</parent>
<!-- 项目的一些基本信息-->
<groupId>demo.example</groupId>
<artifactId>NocosProjectResgister</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 全局的属性-->
<properties>
<!-- 项目的源代码的Java版本-->
<maven.compiler.source>11</maven.compiler.source>
<!-- 项目编译生成的字节码的目标Java版本-->
<maven.compiler.target>11</maven.compiler.target>
<!-- 项目的源代码文件的字符编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- spring cloud alibaba的版本-->
<spring-cloud-alibab.version>2021.0.5.0</spring-cloud-alibab.version>
<!-- nacos-discovery的版本-->
<spring-nacos.version>2021.0.5.0</spring-nacos.version>
</properties>
<!-- 依赖-->
<dependencies>
<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>
<version>${spring-nacos.version}</version>
</dependency>
</dependencies>
<!-- 需要集中管理的依赖 子模块可以直接引用而无需重复引入 -->
<dependencyManagement>
<dependencies>
<!-- 引入spring cloud alibaba -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibab.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 项目的构建配置,包括编译、打包、测试、部署等方面-->
<build>
<resources>
<!-- 构建项目过程中被复制到输出目录中,以便它们可以在应用程序运行时访问-->
<resource>
<directory>src/main/java</directory>
<includes>
<!-- 项目内mybatis的dao配置文件-->
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<!-- 资源文件-->
<include>**/*.*</include>
</includes>
</resource>
</resources>
<plugins>
<!-- spring-boot中用于支持maven打包的插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!-- 打包出来的名称 一般是项目的缩写外加版本号 -->
<finalName>npr</finalName>
</build>
</project>
然后在application.yml
中添加Nacos
服务的地址:
#嵌入式web服务器的配置信息
server:
#端口为9000
port: 9000
tomcat:
#Tomcat容器的URI编码 确保能够正确解析包含非ASCII字符的URL
uri-encoding: UTF-8
spring:
#服务相关信息
application:
name: nacos_register
#cloud中相关配置信息
cloud:
#nacos的配置信息
nacos:
discovery:
#服务的地址 我这里是安装在本机上 默认是8848端口
server-addr: 192.168.2.102:8848
进到nacos
的控制台,看到有以下信息,即算注册成功
Nacos相关组件的说明
在我们选择组件时不难发现,这其中有两个nacos相关的组件:
nacos-discovery 和nacos-configuration
。
前者是用于服务的发现和注册
的
而后者是用于 Nacos服务的配置管理模块
。它允许应用程序从 Nacos 服务器中动态获取其配置信息。这意味着你可以在应用程序运行时动态更改配置
而不需要重启服务
。