nacos下载
Releases · alibaba/nacos (github.com)
nacos配置
nacos默认是以集群方式运行,我们学习暂时只需要一个节点就够了。
所以需要修改nacos的配置文件,路径nacos -> bin ->startup.cmd (因为我用的Windows系统,liunx用.sh后缀名的)
将set MODE="cluster"
改为set MODE="standalone"
配置完成后双击startup.cmd启动
在浏览器中输入http://localhost:8848/nacos,就会出现nacos注册中心面板
项目配置
使用Spring Initializr创建项目,然后将src和其他一些无用文件删除
以下就是父工程结构
在父工程目录下创建一个maven项目作为子模块
修改父pom文件
根据官方文档选择对应版本
修改springboot版本为2.4.2
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
使用dependencyManagement管理版本号
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2020.0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在子模块的pom文件可以看到它的父坐标是could-demo
<?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>could-demo</artifactId>
<groupId>com.maoqi</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.maoqi.order</groupId>
<artifactId>service-order</artifactId>
</project>
子pom文件修改
引入nacos和springboot依赖
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
在子模块中创建主启动类并且加上@EnableDiscoveryClient注解
@EnableDiscoveryClient
@SpringBootApplication
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class,args);
}
}
在子模块resource下创建bootstrap.yml
编辑bootstrap.yml
server:
port: 8000
spring:
application:
name: service-order
cloud:
nacos:
server-addr: localhost:8848
discovery:
ephemeral: false
启动主启动类测试有以下报错
java.lang.IllegalArgumentException: Param ‘serviceName’ is illegal, serviceName is blank
解决办法:
在父工程pom文件中添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
控制台中输出这行代表nacos注册成功
nacos registry, DEFAULT_GROUP service-order 192.168.137.1:8000 register finished
nacos服务注册测试
在nacos页面可以看见service-order服务
现在只有一个服务实例,我们可以再复制一个进行测试
启动两个服务实例
就可以看到
然后再关闭掉8001服务
发现健康实例数为1了,通过nacos注册中心面板我们能够很清楚的观察服务的状态变化