1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        記一次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)我們啟動(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.

        一直卡在這個(gè)位置。

        排查方向:

        • Apollo 有問題

          • 手動(dòng)去模擬請求,是可以拉取到配置的。(Apollo日志有報(bào)錯(cuò))

        • 程序有問題

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

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

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

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

          • 手動(dòng)去模擬請求,是可以拉取到配置的。

        • 其他排查

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

        問題原因

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

        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)致整個(gè) /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í)在之前就有提示這個(gè)相關(guān)的報(bào)錯(cuò)(部分服務(wù)會報(bào)),就是在啟動(dòng)的時(shí)候。報(bào)錯(cuò)部分內(nèi)容如下。

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

        擴(kuò)展

        由于上面的系統(tǒng)是 Centos6.9 ,我在想是不是那個(gè)版本,或者說是 6版本的BUG,我將這個(gè)情況在 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個(gè)域名,我進(jìn)行啟動(dòng)程序,發(fā)現(xiàn)程序是正常的,可以正常拉取配置的。我又增加了 30個(gè)域名,共75個(gè)域名在同一行,然后進(jìn)行重啟程序,程序是正常的,可以正常拉取配置的,應(yīng)該是在 7版本解決了這個(gè)問題。

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

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

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


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

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            亚洲AV成人一区二区三区本码 | 高清无码视频网站在线观看 | 日本肏屄视频 | 淫荡操逼 | 老师的水好多 | 无码逼逼 | 东北女人操逼大片 | 女人被羞羞视频 | 大香蕉伊人久久在线 | 五月天婷婷在线视频 |