91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么解決Dubbo服務啟動兩個小時問題

發布時間:2021-11-16 13:46:26 來源:億速云 閱讀:136 作者:iii 欄目:大數據

這篇文章主要講解了“怎么解決Dubbo服務啟動兩個小時問題”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么解決Dubbo服務啟動兩個小時問題”吧!

現象

現象是這樣的,有一天測試在測試環境重新部署一個 dubbo 應用的時候發現應用“啟動不起來”

但過幾個小時候之后又能自己慢慢恢復,并能夠對外提供 dubbo 服務。

但其實經過我后續排查發現剛開始其實并不是啟動不起來,而是啟動速度非常緩慢,所以當應用長時間啟動后才會對外提供服務。

怎么解決Dubbo服務啟動兩個小時問題

而這個速度慢到居然要花費 2 個小時

導致的一個結果是測試完全不敢在測試環境發版驗證了,每驗證一個功能修復一個 bug 就得等上兩個小時,這誰受得了????。

而且經過多次觀察,確實每次都是花費兩小時左右應用才能啟動起來。

嘗試解決

最后測試頂不住了,只能讓我這個“事故報告撰寫專家”來看看。

當我得知這個問題的現象時其實完全沒當一回事:

都不用想,這不就是主線程阻塞了嘛,先看看是否在初始化的時候數據庫、Zookeeper 之類的連不上導致阻塞了-------來之多次事故處理的經驗告訴我。

于是我把這事打回給測試讓他先找運維排查下,不到萬不得已不要影響我 Touch fish????。

第二天一早看到測試同學的微信頭像跳動時我都已經準備接受又一句 “膜拜大佬????” 的回復時,卻收到 “網絡一切正常,沒人動過,再不解決就要罷工了????”。

好吧,忽悠不過去了。

首先這類問題的排查方向應該不會錯,就是主線程阻塞了,至于是啥導致的阻塞就不能像之前那樣瞎猜了。

我將應用重啟后用 jstack pid 將線程快照打印到終端,直接拉到最后看看 main 線程到底在干啥。

前幾次的快照都是很正常:

加載 Spring ---->連接 Zookeeper ---> 連接 Redis,都是依次執行下來沒有阻塞。

隔了一段后應用確實還沒起來,我再次 jstack 后得到如下信息:

怎么解決Dubbo服務啟動兩個小時問題

翻源碼

我一直等了十幾分鐘再多次 jstack 得到的快照得到的信息都是一樣的。

怎么解決Dubbo服務啟動兩個小時問題

如圖所示可見主線程是卡在了 dubbo 的某個方法 ServiceConfig.java 的 303 行中。

于是我找到此處的源碼:

怎么解決Dubbo服務啟動兩個小時問題

簡單來說這里的邏輯就是要獲取本機的 IP 將其注冊到 Zookeeper 中用于其他服務調用。

怎么解決Dubbo服務啟動兩個小時問題

再往下跟就如堆棧中一樣是卡在了 Inet4AddressImpl.getLocalHostName 處。

但這是一個 native 方法,我們應用也根本干涉不了,最終的現象就是調用這個本地方法非常耗時。

于是這問題貌似也阻塞在這兒了,沒有太多辦法。

最終解決

既然這是一個 native 方法,那說明和應用本身沒有啥關系(確實也是這樣,這個問題是突然間出現的。)

那是否是服務器本身的問題呢,想到在 native 方法里是獲取本機的 hostname,那是否和這個 hostname 有關系呢。

怎么解決Dubbo服務啟動兩個小時問題

這是在我自己的阿里云服務器上測試,真正的測試環境不是這個名字。

拿到服務器 hostname 后再嘗試 ping 這個 hostname,奇怪的現象發生了:

命令剛開始會卡住一段時間(大概幾十秒),然后才會輸出 hostname 對應的 ip 以及對應的延遲。

而當我直接 ping 這個 ip 時卻能快速響應后面的輸出。

最后我嘗試在 /etc/hosts 配置文件中加入了對應的 host 配置:

xx.xx.xx.xx(ip) hostname

再次 ping hostname 的效果就和直接 ping ip 一樣了。

感謝各位的閱讀,以上就是“怎么解決Dubbo服務啟動兩個小時問題”的內容了,經過本文的學習后,相信大家對怎么解決Dubbo服務啟動兩個小時問題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

弋阳县| 陵川县| 桦川县| 堆龙德庆县| 黄陵县| 上高县| 保定市| 柳州市| 卓资县| 邛崃市| 乌拉特前旗| 康定县| 黔西| 昆山市| 鄄城县| 瑞丽市| 图木舒克市| 景德镇市| 惠来县| 汽车| 车致| 三都| 土默特左旗| 常山县| 富阳市| 神池县| 伊金霍洛旗| 邯郸县| 绥阳县| 内乡县| 靖宇县| 喀喇沁旗| 丁青县| 神农架林区| 盐城市| 河西区| 井研县| 沙河市| 公安县| 布尔津县| 婺源县|