国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用 Docker 和 Fig 避免容器之間的競(jìng)爭(zhēng)

kk_miles / 710人閱讀

摘要:使用和的時(shí)候,當(dāng)我們啟動(dòng)多個(gè)容器的時(shí)候,比如一個(gè)服務(wù)和一個(gè)服務(wù),就有可能遇到競(jìng)爭(zhēng)問(wèn)題。但是這不是一件容易的事情。這有個(gè)內(nèi)建的解決方案。

  

注:該文作者是 Chmouel,原文是 Avoiding race conditions between containers with docker and fig

  

該文我主要是意譯,詳細(xì)的看原文吧。

使用 Docker 和 Fig 的時(shí)候,當(dāng)我們啟動(dòng)多個(gè)容器的時(shí)候,比如一個(gè) web 服務(wù)和一個(gè) DB 服務(wù),就有可能遇到競(jìng)爭(zhēng)問(wèn)題。正常來(lái)說(shuō),應(yīng)該是 DB 先與 Web 服務(wù)啟動(dòng),但是因?yàn)?DB 沒(méi)有時(shí)間配置它自己,然后 web 服務(wù)已經(jīng)啟動(dòng)了,這樣就會(huì)造成 web 連接數(shù)據(jù)庫(kù)失敗。

理想中,app 應(yīng)該等待 DB 已經(jīng)設(shè)置好并且啟動(dòng)后才開(kāi)始連接 DB。但是這不是一件容易的事情。

docker 和 fig 的開(kāi)發(fā)者已經(jīng)注意到這個(gè)問(wèn)題,并且在開(kāi)發(fā)版已經(jīng)有一些建議了:

https://github.com/docker/docker/issues/7445

這個(gè)主意就是 docker 必須等待暴露的端口已經(jīng)打開(kāi)了并且 listening 是可用的才告訴容器已經(jīng)啟動(dòng)。這不是容易做到的,因?yàn)?Docker 將很難弄清楚該端口是開(kāi)放的。

這有個(gè)內(nèi)建的 Python 解決方案。代碼如下:

function check_up() {
    service=$1
    host=$2
    port=$3

    max=13 # 1 minute

    counter=1
    while true;do
        python -c "import socket;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);s.connect(("$host", $port))" >/dev/null 2>/dev/null && break || echo "Waiting that $service on ${host}:${port} is started (sleeping for 5)"

        if [[ ${counter} == ${max} ]];then
            echo "Could not connect to ${service} after some time"
            echo "Investigate locally the logs with fig logs"
            exit 1
        fi

        sleep 5

        (( counter++ ))
    done
}

在我 app 服務(wù)的 start.sh 腳本中,在啟動(dòng)我的 web 服務(wù)之前,我像這樣使用它:

check_up "DB Server" ${DB_PORT_3306_TCP_ADDR} 3306

該方法的優(yōu)勢(shì)是它能非常快速的知道端口是否打開(kāi)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/26347.html

相關(guān)文章

  • Docker相關(guān)項(xiàng)目

    摘要:相關(guān)基于項(xiàng)目和項(xiàng)目,并遵循應(yīng)用的十二因素風(fēng)格。相關(guān)在設(shè)計(jì)上,項(xiàng)目盡量保持驅(qū)動(dòng)和模塊化,以便模塊支持不同的實(shí)現(xiàn)方案。相關(guān)不僅可以管理眾多虛擬機(jī),其計(jì)算服務(wù)還支持對(duì)的驅(qū)動(dòng),管理引擎的子項(xiàng)目還可用于通過(guò)模板管理容器。現(xiàn)已整合公司所支持的項(xiàng)目。 整理自《Docker技術(shù)入門(mén)與實(shí)踐》 PaaS(Platform as a Service) PaaS 是希望提供一個(gè)統(tǒng)一的可供所有軟件直接運(yùn)行而無(wú)需...

    littlelightss 評(píng)論0 收藏0
  • 容器技術(shù)在游戲云應(yīng)用展望

    摘要:目前,騰訊內(nèi)部業(yè)務(wù)運(yùn)行環(huán)境基本全部實(shí)現(xiàn)了容器化,在技術(shù)大會(huì)中,騰訊云高級(jí)產(chǎn)品經(jīng)理劉永峰曾發(fā)表演講時(shí)代,公有云面臨的挑戰(zhàn)和機(jī)遇。本文中劉永峰展望了容器技術(shù)在游戲云的應(yīng)用。 容器技術(shù)是一種輕量級(jí)虛擬化技術(shù),能夠以很細(xì)的粒度,虛擬化獨(dú)立的系統(tǒng)運(yùn)行環(huán)境。這就意味著,一臺(tái)物理的服務(wù)器,或者是一臺(tái)云上面的虛擬服務(wù)器,能夠同時(shí)運(yùn)行成百上千個(gè)獨(dú)立的容器。基于游戲行業(yè)短平快的鮮明特點(diǎn), 每一個(gè)游戲世界里面,每...

    Lyux 評(píng)論0 收藏0
  • Docker大坑小洼

    摘要:正在學(xué)習(xí),留著看看轉(zhuǎn)自的大坑小洼成為云計(jì)算領(lǐng)域的新寵兒已經(jīng)是不爭(zhēng)的事實(shí),作為高速發(fā)展的開(kāi)源項(xiàng)目,難免存在這樣或那樣的瑕疵。話不多說(shuō),一起來(lái)領(lǐng)略的大坑小洼。原因回歸至上文的第一個(gè)坑。如此一來(lái),只要內(nèi)部涉及到域名解析,則立即受到影響。 正在學(xué)習(xí)Docker,留著看看 轉(zhuǎn)自Docker的大坑小洼 Docker成為云計(jì)算領(lǐng)域的新寵兒已經(jīng)是不爭(zhēng)的事實(shí),作為高速發(fā)展的開(kāi)源項(xiàng)目,難免存在這樣或那樣...

    My_Oh_My 評(píng)論0 收藏0
  • 帶你 Docker Hangzhou Meetup #3 搶鮮看

    摘要:在浙江大學(xué)實(shí)驗(yàn)室項(xiàng)目組負(fù)責(zé)的架構(gòu)研究,以及做與技術(shù)結(jié)合的實(shí)踐。耿輝的最新動(dòng)態(tài),在的大會(huì)發(fā)布了等新特性,耿輝為大家?guī)?lái)前沿的最新動(dòng)態(tài)。介紹耿輝,華為開(kāi)源軟件戰(zhàn)略專家。 showImg(https://segmentfault.com/img/bVkqvv); Docker 愛(ài)好者們,本周六 12.27 的 Docker Meetup #3 約么? 本次的杭州 Docker Meetu...

    PrototypeZ 評(píng)論0 收藏0
  • Cube如何助力科盾業(yè)務(wù)容器化“一步到位”?

    前言 以Docker為代表的容器技術(shù)縮短了企業(yè)應(yīng)用從開(kāi)發(fā)、構(gòu)建到發(fā)布、運(yùn)行的整個(gè)生命周期。Gartner推測(cè)到2022年將會(huì)有75%的全球化企業(yè)將在生產(chǎn)中使用容器化的應(yīng)用(當(dāng)前約為30%)。由于Docker往往難以獨(dú)立支撐起大規(guī)模容器化部署,因此誕生了Kubernetes等容器編排工具,解決了大規(guī)模容器的組織和管理難題。 但事實(shí)上,Kubernetes的使用體系還是非常復(fù)雜的,對(duì)于企業(yè)的開(kāi)...

    happyhuangjinjin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<