<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          記一次hosts配置內(nèi)容過多引起的故障

          共 2633字,需瀏覽 6分鐘

           ·

          2024-04-12 04:48




          記一次hosts配置內(nèi)容過多引起的故障

          問題環(huán)境

          • 系統(tǒng)環(huán)境

            • CentOS release 6.9 (Final)

            • 2.6.32-696.16.1.el6.x86_64

          • Java 環(huán)境

            • 1.8.0_151

          • Apollo

            • 1.4.0

          • 代碼框架

            • Spring Boot

          問題內(nèi)容

          當(dāng)我們啟動 服務(wù)后,服務(wù)一直卡在去 Apollo 拉取配置的位置,也就是一直沒有拉到配置。

          2019-11-20 21:06:47.884 [main] INFO  c.c.f.f.i.p.DefaultApplicationProvider - App ID is set to xdm-test by app.id property from /META-INF/app.properties
          2019-11-20 21:06:47.886 [main] INFO c.c.f.f.i.p.DefaultServerProvider - Loading /opt/settings/server.properties
          2019-11-20 21:06:47.886 [main] INFO c.c.f.f.i.p.DefaultServerProvider - Environment is set to [PRO] by property 'env' in server.properties.

          一直卡在這個位置。

          排查方向:

          • Apollo 有問題

            • 手動去模擬請求,是可以拉取到配置的。(Apollo日志有報錯)

          • 程序有問題

            • 代碼發(fā)到 VPC 環(huán)境是沒有問題的(當(dāng)時有兩套環(huán)境),拿上一個版本的代碼進(jìn)行啟動也是不行的。

          • Spring Boot 的內(nèi)置 Tomcat 啟動慢(也就是沒有啟動起來)

            • 更改啟動參數(shù)使用 /dev/urandom,無效果。

          • 網(wǎng)絡(luò)問題

            • 手動去模擬請求,是可以拉取到配置的。

          • 其他排查

            • 使用 tcpdump 抓包,沒有發(fā)現(xiàn)該應(yīng)用向 Apollo發(fā)起拉取配置請求。

          問題原因

          我們查看在 /etc/hosts 中發(fā)現(xiàn)了最近加了一行 host 配置,是域名指向 Nginx 的,域名有 45個,也就是一行內(nèi) 一個 IP 對應(yīng)了 45個域名。形如:

          192.168.108.108 a1.com a2.com a3.com a4.com a5.com a6.com a7.com a8.com a9.com a10.com a11.com a12.com a13.com a14.com a15.com a16.com a17.com a18.com a19.com a20.com a21.com a22.com a23.com a24.com a25.com a26.com a27.com a28.com a29.com a30.com a31.com a32.com a33.com a34.com a35.com a36.com

          問題是 一行 hosts 內(nèi)容太多了。導(dǎo)致整個 /etc/hosts配置文件沒有生效,或者說是紊亂了。

          問題解決辦法

          將上面的一行 hosts 內(nèi)容放到兩行里面。形如:

          192.168.108.108 a1.com a2.com a3.com a4.com a5.com a6.com a7.com a8.com a9.com a10.com a11.com a12.com a13.com a14.com a15.com a16.com a17.com a18.com 
          192.168.108.108 a19.com a20.com a21.com a22.com a23.com a24.com a25.com a26.com a27.com a28.com a29.com a30.com a31.com a32.com a33.com a34.com a35.com a36.com

          然后重啟服務(wù)。就可以拉取配置了。

          思考

          其實(shí)在之前就有提示這個相關(guān)的報錯(部分服務(wù)會報),就是在啟動的時候。報錯部分內(nèi)容如下。

          這個問題的原因是 spring-redis 在初始化時會實(shí)例化LocalHost,沒有在/etc/hosts中找到對應(yīng)的 主機(jī)名和 內(nèi)網(wǎng)IP相對應(yīng)的配置,但是我們進(jìn)行查看的時候,發(fā)現(xiàn)這個配置是有的,也就是有 內(nèi)網(wǎng)IP 和 主機(jī)名的對應(yīng)記錄,但是為什么不生效(也不是不生效,是在程序加載的時候不生效,我們手動ping 主機(jī)名是解析成功了的),原因就是我們配置了一行超長的 IP 和域名解析記錄,當(dāng)我們把這個長的解析記錄分成兩行后,這個報錯也就不存在了。

          擴(kuò)展

          由于上面的系統(tǒng)是 Centos6.9 ,我在想是不是那個版本,或者說是 6版本的BUG,我將這個情況在 CentOS Linux release 7.6.1810 (Core) 內(nèi)核版本為 3.10.0-957.5.1.el7.x86_64 進(jìn)行重現(xiàn),我讓 /etc/hosts 的一行也有45個域名,我進(jìn)行啟動程序,發(fā)現(xiàn)程序是正常的,可以正常拉取配置的。我又增加了 30個域名,共75個域名在同一行,然后進(jìn)行重啟程序,程序是正常的,可以正常拉取配置的,應(yīng)該是在 7版本解決了這個問題。

          我后面又檢測了下 CentOS release 6.10 (Final) 2.6.32-754.11.1.el6.x86_64 發(fā)現(xiàn)也還是出現(xiàn)這種問題,在配置了幾十個域名在一行后,啟動就還會出現(xiàn)這種情況。

          鏈接:https://www.cnblogs.com/operationhome/p/11914245.html

          (版權(quán)歸原作者所有,侵刪)


          瀏覽 35
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  丁香五月天激情 | 青娱乐成人免费视频 | 天天日天天爽 | 日韩免费高清在线视频 | 国模一区二区三区 |