欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot+Nacos+MySQL微服務(wù)問題及解決方案

 更新時間:2025年09月15日 09:15:52   作者:劉一說  
Java微服務(wù)啟動失敗排查流程:檢查日志、服務(wù)狀態(tài)、端口監(jiān)聽、網(wǎng)絡(luò)連通、配置與Nacos同步、數(shù)據(jù)庫連接、系統(tǒng)資源及啟動參數(shù),必要時打包診斷信息并共享文檔

場景設(shè)定

你有一個 Java 微服務(wù)應(yīng)用(如 your-pro.jar),部署在 Linux 服務(wù)器上,使用:

  • Nacos 作為配置中心和注冊中心
  • MySQL 作為數(shù)據(jù)庫
  • Spring Boot 框架
  • 日志文件位于 /home/project-cloud/server/your-pro/module/logs/

你發(fā)現(xiàn)應(yīng)用啟動失敗或無法訪問,需要快速排查。

定制排查命令模板:Spring Boot + Nacos + MySQL

建議按順序執(zhí)行,每一步都可能定位到問題。

第一步:查看應(yīng)用日志(定位錯誤根源)

# 進入日志目錄
cd /home/project-cloud/server/your-pro/module/logs/

# 實時查看日志,并高亮 ERROR 和 WARN
tail -f *.log | grep --color=always -E "ERROR|WARN|Exception"

關(guān)注關(guān)鍵詞

  • Failed to start
  • DataSource
  • Connection refused
  • Timeout
  • ClassNotFoundException
  • NoSuchBeanDefinitionException

第二步:確認應(yīng)用是否在運行

# 查看 Java 進程
ps aux | grep java | grep -v grep

# 或精確查找你的服務(wù)
ps aux | grep your-pro

正常輸出示例:

root  1234  1.2  5.3  2345678  123456  ?  Sl   10:00  0:15 java -jar your-pro.jar

如果沒有輸出,說明服務(wù)未啟動或已崩潰。

第三步:檢查端口是否監(jiān)聽

# 檢查你的服務(wù)端口(如 9202)
ss -tulnp | grep :9202

# 檢查 Nacos 端口
ss -tulnp | grep :8848
ss -tulnp | grep :9848

# 檢查 MySQL 端口
ss -tulnp | grep :3306

正常:顯示 LISTEN 狀態(tài)和 javamysqld 進程

異常:無輸出 → 服務(wù)未啟動或端口配置錯誤

第四步:測試網(wǎng)絡(luò)連通性

# 測試 Nacos 是否可達(HTTP)
curl -s -w "%{http_code}\n" -o /dev/null http://10.135.10.33:8848/nacos/v1/console/health

# 測試 Nacos gRPC 端口
telnet 10.135.10.33 9848

# 測試 MySQL 連通性
telnet 127.0.0.1 3306

# 測試本機服務(wù)是否響應(yīng)
curl http://localhost:9202/actuator/health

如果 telnet 失敗,可能是:

  • 防火墻阻止
  • 安全組未開放(云服務(wù)器)
  • 服務(wù)未監(jiān)聽

第五步:檢查配置文件

# 查找 bootstrap.yml 或 application.yml
find /home/project-cloud -name "bootstrap*.yml" -o -name "application*.yml" 2>/dev/null

# 查看配置內(nèi)容(重點關(guān)注數(shù)據(jù)庫和 Nacos)
cat /home/project-cloud/server/your-pro/module/config/bootstrap.yml

# 檢查是否配置了數(shù)據(jù)庫
grep -A 5 -B 2 "datasource" bootstrap.yml

確認配置中是否有:

spring:
  datasource:
    url: jdbc:mysql://...
    username: ...
    password: ...
  cloud:
    nacos:
      discovery:
        server-addr: 10.135.10.33:8848
      config:
        server-addr: 10.135.10.33:8848

第六步:檢查 Nacos 配置是否存在

# 使用 curl 查看 Nacos 配置(替換 dataId 和 group)
curl "http://10.135.10.33:8848/nacos/v1/cs/configs?dataId=your-pro-test.yml&group=DEFAULT_GROUP"

# 如果有權(quán)限,可加用戶名密碼
curl -u nacos:nacos "http://10.135.10.33:8848/nacos/v1/cs/configs?dataId=your-pro-test.yml&group=DEFAULT_GROUP"

應(yīng)返回你在 Nacos 控制臺配置的 yaml 內(nèi)容,包含數(shù)據(jù)庫配置。

第七步:檢查數(shù)據(jù)庫連接

# 登錄 MySQL
mysql -h 127.0.0.1 -u root -p

# 檢查數(shù)據(jù)庫是否存在
SHOW DATABASES LIKE 'your_pro';

# 檢查表(如果是代碼生成器)
USE your_pro;
SHOW TABLES;

如果連接失敗,檢查:

  • MySQL 是否啟動
  • 用戶權(quán)限
  • bind-address 是否限制了 IP

第八步:檢查系統(tǒng)資源

# 查看 CPU 和內(nèi)存
top -b -n 1 | head -20

# 查看磁盤空間
df -h / /home

# 查看日志目錄占用
du -sh /home/project-cloud/server/*/logs/*.log

避免因磁盤滿導(dǎo)致日志寫入失敗或應(yīng)用崩潰。

第九步:檢查服務(wù)啟動命令

# 查看你是如何啟動的
ps aux | grep java | grep jar

# 正確示例:
# java -jar your-pro.jar --spring.profiles.active=test

確保:

  • 使用了正確的 --spring.profiles.active
  • 沒有遺漏 JVM 參數(shù)(如 -Dnacos.server.addr=...

第十步:一鍵打包診斷信息(可選)

創(chuàng)建一個診斷腳本 diagnose.sh

#!/bin/bash
echo "=== 診斷時間: $(date) ==="
echo
echo "【1. Java 進程】"
ps aux | grep java | grep -v grep
echo
echo "【2. 端口監(jiān)聽】"
ss -tulnp | grep -E ":(8848|9848|9202|3306)"
echo
echo "【3. Nacos 健康】"
curl -s http://10.135.10.33:8848/nacos/v1/console/health
echo
echo "【4. 磁盤空間】"
df -h /
echo
echo "【5. 最近日志】"
tail -n 20 /home/peoject-cloud/server/your-pro/module/logs/*.log | grep -E "ERROR|WARN"

運行:

chmod +x diagnose.sh
./diagnose.sh > diagnose.log

diagnose.log 發(fā)給同事或發(fā)到群里,快速定位問題。

總結(jié):排查流程圖

啟動失?。?
   ↓
→ 查日志(tail -f)
   ↓
→ 看進程(ps aux)
   ↓
→ 查端口(ss -tulnp)
   ↓
→ 測試連通(telnet/curl)
   ↓
→ 檢查配置(bootstrap.yml + Nacos)
   ↓
→ 驗證數(shù)據(jù)庫
   ↓
→ 檢查資源(CPU/內(nèi)存/磁盤)
   ↓
→ 修復(fù)并重啟

建議:把這個模板保存為 troubleshoot.md 放在項目根目錄,團隊共享。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java 判斷IP地址的合法性實例詳解

    Java 判斷IP地址的合法性實例詳解

    這篇文章主要介紹了Java 判斷IP地址的合法性實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • java?使用readLine()?亂碼的解決

    java?使用readLine()?亂碼的解決

    這篇文章主要介紹了java使用readLine()亂碼的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot使用Cache集成Redis做緩存的保姆級教程

    SpringBoot使用Cache集成Redis做緩存的保姆級教程

    Spring Cache是Spring框架提供的一個緩存抽象層,它簡化了緩存的使用和管理,Spring Cache默認使用服務(wù)器內(nèi)存,并無法控制緩存時長,查找緩存中的數(shù)據(jù)比較麻煩,本文已常用的Redis作為緩存中間件作為示例,詳細講解項目中如何使用Cache提高系統(tǒng)性能,需要的朋友可以參考下
    2025-01-01
  • Java8 Comparator排序方法實例詳解

    Java8 Comparator排序方法實例詳解

    這篇文章主要介紹了Java8 Comparator排序方法實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • 2020年編程選Java的8大理由,JAVA前景如何

    2020年編程選Java的8大理由,JAVA前景如何

    這篇文章主要介紹了2020年編程選Java的8大理由,JAVA前景如何,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 基于Java?NIO編寫一個簡單版Netty服務(wù)端

    基于Java?NIO編寫一個簡單版Netty服務(wù)端

    基于?NIO?實現(xiàn)的網(wǎng)絡(luò)框架,可以用少量的線程,處理大量的連接,更適用于高并發(fā)場景,所以被就將利用NIO編寫一個簡單版Netty服務(wù)端,需要的可以參考下
    2024-04-04
  • Java特性?Lambda?表達式和函數(shù)式接口

    Java特性?Lambda?表達式和函數(shù)式接口

    這篇文章主要介紹了Java特性?Lambda?表達式和函數(shù)式接口,Lambda表達式基于函數(shù)式編程思想,也可以稱為閉包,是Java?8引入的重要新特性,?Lambda允許把函數(shù)作為一個方法的參數(shù)
    2022-06-06
  • 詳解Spring依賴注入:@Autowired,@Resource和@Inject區(qū)別與實現(xiàn)原理

    詳解Spring依賴注入:@Autowired,@Resource和@Inject區(qū)別與實現(xiàn)原理

    這篇文章主要介紹了詳解Spring依賴注入:@Autowired,@Resource和@Inject區(qū)別與實現(xiàn)原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • Spring應(yīng)用拋出NoUniqueBeanDefinitionException異常的解決方案

    Spring應(yīng)用拋出NoUniqueBeanDefinitionException異常的解決方案

    這篇文章介紹了解決org.springframework.beans.factory.NoUniqueBeanDefinitionException異常的一些解決方案,從這些解決方案可以看出Spring框架的設(shè)計精妙,遇見此問題的朋友可以參考下該解決方案
    2021-06-06
  • MyBatisPlus?大數(shù)據(jù)量查詢慢的問題解決

    MyBatisPlus?大數(shù)據(jù)量查詢慢的問題解決

    本文主要介紹了MyBatis?Plus?解決大數(shù)據(jù)量查詢慢問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評論