1.依赖异常
须知:
【 如果项目的结构是单个模块的,需要给每个单个模块添加起步依赖 spring-boot-starter-parent,指定版本 】
【 如果项目的结构是子父模块的,只需要给父模块添加起步依赖 spring-boot-starter-parent,指定版本,所有子模块引入父模块就行 】
配置文件
- 你指定了该项目的启动端口号是 8080
- 你使用了阿里的
nacos
注册中心组件,定义了服务名weather-service
,及其 Nacos注册中心的地址及端口号localhost:8848
- 定义了集群 cluster-name :SH
- 定义了隔离空间 namespace:bf 6106 fa-ed 78-4 a 43-bf 22-779594 e 16 a 4 c
依赖文件
- 这里你可以看出该项目的结构是单个模块, 所以得加起步依赖 spring-boot-starter-parent,指定版本
- 这里使用了 nacos 注册中心,得加
spring-cloud
依赖和spring-cloud-alibaba
依赖 ,spring-cloud-alibaba
是根据spring-cloud
开发的,所以使用spring-cloud-alibaba
的所有组件都必须添加spring-cloud
依赖,还得加spring-cloud-starter-alibaba-nacos-discovery
nacos 的注册中心依赖- 而底下使用了
<dependencyManagement> <dependencies> 标签
spring-cloud-alibaba-dependencies ,spring-cloud-dependencie
统一了其组件下所有的依赖版本
server: port: 8080 spring: #注册服务到Nacos application: name: weather-service #服务名 cloud: nacos: discovery: server-addr: localhost:8848 #Nacos注册中心的地址及端口号 cluster-name: SH namespace: bf6106fa-ed78-4a43-bf22-779594e16a4c
<?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>cn.itcast</groupId> <artifactId>xiaohua-service</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <!-- war: 传统web项目 jar(默认):java项目 spring boot项目统一打包方式jar pom:父工程--> <!--jdk编译版本--> <properties> <java.version>1.8</java.version> </properties> <!--spring boot父工程--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <dependencies> <!-- 导入nacos注册中心组件--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--spring boot整合junit起步依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <!--spring boot整合springmvc起步依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--spring boot整合mp起步依赖--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> <!--lombok依赖--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!--fastjson的依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> </dependency> <!--apache工具包,提供大量工具类,简化操作,eg:判断字符串是否为""字符串... StringUtils.isEmpty() StringUtils.isBlank() --> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--durid连接池依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.23</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <!--spring boot项目打jar包插件 只有引入该插件,打成jar包才可以使用java -jar 运行 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.4.5</version> </plugin> </plugins> </build>
</project>
2. Nacos 程序没启动
问题
当 Nacos 程序没启动时/ Nacos 没有指定单体启动时(Nacos 默认集群启动) ,会导致 Nacos 服务启动失败
2024-11-02 00:08:41.354 ERROR 37164 --- [ main] c.a.c.n.registry.NacosServiceRegistry : nacos registry, weather-service register failed...NacosRegistration{nacosDiscoveryProperties=NacosDiscoveryProperties{serverAddr='localhost:8848', endpoint='', namespace='', watchDelay=30000, logName='', service='weather-service', weight=1.0, clusterName='DEFAULT', namingLoadCacheAtStart='false', metadata={preserved.register.source=SPRING_CLOUD}, registerEnabled=true, ip='192.168.240.94', networkInterface='', port=8080, secure=false, accessKey='', secretKey=''}},java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all servers([localhost:8848]) tried: failed to req API:localhost:8848/nacos/v1/ns/instance. code:500 msg: java.net.ConnectException: Connection refused: connect
解决方案
- 查找 nacos 是否启动
- 启动 Nacos 服务,指定其单体执行
3. Linux 的静态 ip 失效
查询 ip addr ,静态ip 没分配
尝试重启网络,无效果
解决方案如下