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 沒分配
嘗試重啟網路,無效果
解決方案如下