docker容器間的負(fù)載均衡

場景

在最近一次開發(fā)過程中遇見這個(gè)這樣的問題:在面臨突發(fā)性大量用戶涌進(jìn)系統(tǒng)的時(shí)候析砸,服務(wù)器的資源使用并不高窿侈,cpu使用率28%左右磷醋,內(nèi)存的使用率40%左右但是依然會(huì)造成系統(tǒng)卡頓冕臭,請求超時(shí)等問題。百思不得其解頭發(fā)都快抓掉完了~卷胯。系統(tǒng)也未發(fā)現(xiàn)sql慢查詢等操作瘟裸,修改php的最大鏈接數(shù),進(jìn)程數(shù)等配置依然不見得到改善诵竭。思來想去大概確定問題應(yīng)該出現(xiàn)在php代碼的身上,由于php處理任務(wù)時(shí)間過長一直占據(jù)著進(jìn)程得不到釋放兼搏,在大量請求的請求的情況下后面的一直處于等待狀態(tài)卵慰,等待時(shí)候過長就會(huì)出現(xiàn)504,系統(tǒng)卡頓的情況佛呻。目前可以確定不是硬件問題裳朋,sql瓶頸問題,所以問題在于php瓶頸大概會(huì)有以下幾個(gè)地方:

  • 1.大量新用戶涌進(jìn)的時(shí)候請求微信授權(quán)登陸吓著,以及分享判斷業(yè)務(wù)邏輯時(shí)業(yè)務(wù)處理太慢導(dǎo)致鏈接數(shù)過多(經(jīng)過并發(fā)測試問題不出現(xiàn)在這)
  • 2.用戶提現(xiàn)請求請求數(shù)量太大鲤嫡,商戶支付時(shí)請求數(shù)太多占用進(jìn)程(可能性最大)。
  • 3.還在找绑莺。哈哈哈哈(找到了告訴你們)

思來想去既然服務(wù)的資源使用不多還不到50%暖眼,處理不過來的是php,如果使用多個(gè)php去執(zhí)行這些任務(wù)就會(huì)得到改善纺裁,這個(gè)時(shí)候直覺就是負(fù)載均衡诫肠。在以往的負(fù)載均衡里都是多臺服務(wù)器搭建一樣的運(yùn)行環(huán)境然配置nginx的proxy_pass反向代理到http請求上,但是現(xiàn)在問題在于服務(wù)器資源使用只有三分鐘一欺缘,再購買服務(wù)器會(huì)有點(diǎn)浪費(fèi)栋豫,也不是最根本的辦法,想到docker-compose scale的參數(shù)可以設(shè)置啟動(dòng)容器的數(shù)量谚殊,唉~我可以啟動(dòng)多個(gè)容器然后使用nginx負(fù)載聚合每次訪問不用的phpfpm容器處理任務(wù)的啊丧鸯,提起袖子說干就干。嫩絮。丛肢。

實(shí)現(xiàn)思路

啟動(dòng)多個(gè)phpfpm容器,利用nginx負(fù)載均衡分配處理任務(wù)的容器

具體配置

  • 搭建docker絮记,docker-compose等騷操作我就不說摔踱,趕緊寫完擼代碼
  • pull你想要的php版本
  • docker-compose.yml 配置
 nginx:
    image: nginx:stable
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./vhost:/etc/nginx/conf.d
      - ../Code:/var/www/html
    links:
      - phpfpm
      - phpfpm2

  //第一個(gè)phpfpm
  phpfpm:
    image: php:v7.2
    volumes:
      - ../Code:/var/www/html
      - ./php-fpm7.2/queue:/etc/supervisor/conf.d
#    ports:
#      - "9000"
#      - "9501:9501"

 
 //第二個(gè)phpfpm
  phpfpm2:
    image: php:v7.2
    volumes:
      - ../Code:/var/www/html
      - ./php-fpm7.2/queue:/etc/supervisor/conf.d
#    ports:
#      - "9000"
#      - "9501:9501"

  • nginx 配置(test.com.conf)
upstream webs {
    server phpfpm:9000;
    server phpfpm2:9000;
}


server {
        listen       80 ;
        server_name test.xx;
        root         /var/www/html/test;

        location = /favicon.ico {
          log_not_found off;
          access_log off;
        }


        location ^~ /web/  {
            if (!-e $request_filename) {
                rewrite  ^(.*)$ /web/index.html break;
            }
        }

        location / {
            index index.php index.html index.htm;
                if (!-e $request_filename) {
                    rewrite  ^(.*)$  /index.php?s=$1  last;
                    break;
                }
        }

        location ~ \.php(.*)$ {
            fastcgi_pass   webs;        //注意這里
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^(.+\.php)(.*)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }

    }
  • docker-compost up -d 啟動(dòng)服務(wù)
  • 配置hosts訪問項(xiàng)目即可(測試提示:phpfpm,phpfpm2掛載到不同的項(xiàng)目路徑,訪問test.xx會(huì)發(fā)現(xiàn)每次的請求都會(huì)被隨機(jī)分配到這些這兩個(gè)容器內(nèi)處理任務(wù))

缺陷

  • 然并luan怨愤,并沒有解決并發(fā)下造成的卡頓問題
  • session派敷,緩存等,不能存儲在容器,需借助reids
  • 服務(wù)器資源消耗明顯增高了
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末篮愉,一起剝皮案震驚了整個(gè)濱河市腐芍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌试躏,老刑警劉巖猪勇,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異颠蕴,居然都是意外死亡泣刹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門犀被,熙熙樓的掌柜王于貴愁眉苦臉地迎上來椅您,“玉大人,你說我怎么就攤上這事寡键∠朴荆” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵西轩,是天一觀的道長员舵。 經(jīng)常有香客問我,道長藕畔,這世上最難降的妖魔是什么马僻? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮劫流,結(jié)果婚禮上巫玻,老公的妹妹穿的比我還像新娘。我一直安慰自己祠汇,他們只是感情好仍秤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著可很,像睡著了一般诗力。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上我抠,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天苇本,我揣著相機(jī)與錄音,去河邊找鬼菜拓。 笑死瓣窄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的纳鼎。 我是一名探鬼主播俺夕,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼裳凸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了劝贸?” 一聲冷哼從身側(cè)響起姨谷,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎映九,沒想到半個(gè)月后梦湘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡件甥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年捌议,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片引有。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡禁灼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出轿曙,到底是詐尸還是另有隱情,我是刑警寧澤僻孝,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布导帝,位于F島的核電站,受9級特大地震影響穿铆,放射性物質(zhì)發(fā)生泄漏您单。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一荞雏、第九天 我趴在偏房一處隱蔽的房頂上張望虐秦。 院中可真熱鬧,春花似錦凤优、人聲如沸悦陋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俺驶。三九已至,卻和暖如春棍辕,著一層夾襖步出監(jiān)牢的瞬間暮现,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工楚昭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留栖袋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓抚太,卻偏偏與公主長得像塘幅,于是被迫代替她去往敵國和親昔案。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容