nacos Connection refused (Connection refused)

記錄一次「異常bug」,具體信息以下。主要是記錄一下處理過程,可能口水話比較多,若是想看結果,直接日後拉便可。java

 

 最後一行git

 

 起初,運維同事找到我,跟我說程序出問題了,系統升級,一直連不上nacos。spring

我看了日誌信息以後,剛開始仍是沒有在乎的。畢竟是nacos報錯,報錯還那麼明顯:java.net.ConnectException: Connection refused (Connection refused)docker

我信心滿滿告訴他,是nacos沒起起來,或者是配置文件有問題。這不是代碼的問題。(這裏帶有一點點僥倖心理)bootstrap

 

 

我很快就被打臉了。其餘服務都能起起來,惟獨咱們同事寫的這個模塊出了bug?就是連不上nacos。此時讓他們重啓nacos,確定是不現實的,畢竟nacos是沒問題的。重啓這個報錯的模塊也試過了,可是模塊就是一直在重連nacos,而且最終連不上去。springboot

因而我把nacos的加載順序從新捋一遍。在docker中起服務,首先是加載docker的環境變量,而後替代掉程序中的bootstrap.yml。這裏猜想是啓動命令的問題。運維

配置的讀取過程

1.當docker容器啓動時,獲取到容器的環境變量(一般是服務名,nacos地址,nacos命名空間,nacos組,須要的配置文件)。ide

2.jar啓動時,會使用容器的環境變量會做爲相關參數。(原理能夠查詢關鍵詞: spring jar 參數)spa

3.springboot啓動時會注入相關的參數,從而獲取到nacos的配置信息,並將nacos作爲配置中心,從nacos上讀取相關配置。.net

4.springboot 讀到相關配置,其中一個配置是將nacos作爲註冊中心,將服務註冊到nacos上。 (本次異常的發生點

因而我又去問運維同事容器的啓動命令。(由於docker中的環境變量,已經在啓動命令中作了映射了,全部咱們只用看運維同事的啓動命令便可)

 exec java -jar island-serviceconfig.jar --server-addr=sc-nacos:8848 --namespace=public --group=service-cool --config-common=island-common.yaml --config-service=island-serviceconfig.yaml

看着啓動命令,我又陷入了沉思,這是怎麼操做,必定毛病也沒有。就這樣,嘗試了好幾遍。一個下午就沒有了。

後面我仔細回味報錯信息。這不可能,nacos難道有版本錯誤?很快被我否認,此次升級系統,從新拉了代碼。以前都是好好的,運維那邊的nacos版本是沒有改動過的。

因而我上去倉庫看代碼。代碼也沒有問題,近期沒有人修改過。這很鬱悶吶。

最後無可奈何,去看了nacos的源碼,最後找到了一點點信息,nacos是在咱們沒有配置nacos地址的時候,纔會去加載localhost:8848這個地址。

那麼問題來了,明明咱們配置了nacos地址,爲何仍是會去加載localhost:8848?這又回到了原點。又開始懷疑是運維同事的執行命令出了問題,可是確實是沒有問題的。

我慢慢靜下心來。也許是我一開始的出發點就出問題了。我一直覺得是運維同事部署出了問題,思惟停留在運維那邊,絲毫沒有懷疑是配置問題的問題。

最終快下班了和另外一個同事討論,我剛開口描述完問題,他就說了一句:臥槽,我搞了三天。

果真,以前不是好着的,而是有這位同事一直在「擦屁股」,可是git上面的配置問題,他又沒有進行更新。致使運維每次拉取代碼,都會出現這個問題。具體問題以下

乍一看這配置沒啥問題,我以前檢查配置文件也是,每次看下去都沒有問題,洽洽是個人覺得,致使這個問題沒能及時被發現。這就是一個縮進的問題。

正確的配置以下:

 

 最後,感覺一波吐槽,其實最初運維的同事也發現這個縮進有問題,全部他手動改了不少,也反饋了,可是估計開發都很忙,就沒有修改git上的配置文件。致使埋下了一顆大雷。好在寫代碼的同事已經離職(手動狗頭保命)

 

 

 

 

 

 總結:遇到bug不要慌,好好和運維同事作溝通,每一個部門都有本身的規範和要求,像簡單的運行命令出了問題,這個仍是很好排查的。切記切記,不要有甩鍋心理,不要有甩鍋心理,不要有甩鍋心理。

此次很明顯,運維同事就是被咱們開發擺了一道,這也是開發這邊沒有注意的問題,或者說,這是不該該出現的問題,屬於比較低等的問題。饒是如此,咱們也要重視起來,不然一個小小的雷,埋久了,他也是會發酵的,威力愈來愈大。

本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須在文章頁面給出原文連接,不然保留追究法律責任的權利。
相關文章
相關標籤/搜索