Hleðslujöfnuður með Docker

Þegar þú keyrir vefforrit vilt þú venjulega fá sem mest út úr auðlindum þínum án þess að þurfa að breyta hugbúnaðinum þínum í að nota fjölþráða eða flóknar atburðalykkjur. Docker veitir þér hins vegar einfalda leið til að hlaða jafnvægi á forritið þitt innbyrðis til að fá sem mest út úr auðlindum netþjónsins. Þessi grein mun sýna þér hvernig á að nota Nginx til að hlaða jafnvægi á vefforritið þitt með því að nota Docker á CentOS.

Skref 1: Búðu til einfalt forrit

Við munum nota ryð til að byggja þetta einfalda forrit. Að því gefnu að þú hafir sett upp ryð skaltu keyra cargo new webapp –bin. Þegar vel tekst til muntu sjá möppu sem heitir webapp. Inni í webapp, munt þú sjá skrá sem heitir Cargo.toml. Bættu eftirfarandi línum við það:

[dependencies.iron]
version = "*"

Næst, inni í src/main.rsskránni, fjarlægðu allt og fylltu hana út með eftirfarandi:

extern crate iron;

use iron::prelude::*;
use iron::status;

fn main() {
    Iron::new(|_: &mut Request| {
        Ok(Response::with((status::Ok, "Hello Vultr :)")))
    }).http("0.0.0.0:3000").unwrap();
}

Athugið: Ekki breyta IP innan forritsins. Þetta er stillt þannig að Docker geti hlustað á forritið þitt.

Þegar þú hefur lokið því skaltu setja saman forritið með því að keyra cargo build –release. Það fer eftir netþjóninum þínum, það gæti tekið nokkrar mínútur. Ef það eru engar villur skaltu prófa forritið með því að fylgja þessum skrefum:

  • Hlaupa target/release/webapp.
  • Farðu http://0.0.0.0:3000/í í vafranum þínum. Skiptu út 0.0.0.0fyrir IP tölu netþjónsins þíns.

Ef allt virkaði rétt muntu sjá "Halló Vultr :)" á síðunni.

Skref 2: Búðu til Docker gáma

Búðu til Dockerfileog fylltu það út með eftirfarandi:

FROM centos:latest
MAINTAINER User <user@localhost>
RUN yum update -y
COPY ./webapp/target/release/webapp /opt/
EXPOSE 3000
WORKDIR /opt
CMD ./webapp

Vistaðu skrána. Búðu síðan til skrá sem heitir deploy.shog fylltu hana út með eftirfarandi:

DEFAULT_PORT=45710
APP_PORT=3000
DEPLOY=5
NAME="webapp"
docker build -t webapp:example . 

for ((i=0; i<DEPLOY; i++)); do
        docker kill $NAME$i ; docker rm $NAME$i
        docker run --name $NAME$i -p 127.0.0.1:$(((i * 1000) + DEFAULT_PORT)):$APP_PORT -d webapp:example
done

Þegar þú keyrir þetta skriftu mun það byggja myndina og dreifa ílátinu miðað við magnið sem þú hefur stillt (sjálfgefið er 5). Ef gámurinn er til mun hann drepa hann og fjarlægja hann úr skránni áður en hann er notaður aftur.

Skref 3: Stilltu Nginx

Búðu til Nginx stillingarskrá og fylltu hana út með eftirfarandi:

upstream application {
    server localhost:45710;
    server localhost:46710;
    server localhost:47710;
    server localhost:48710;
    server localhost:49710;
}

server {
    listen 0.0.0.0:80;    
    location / {
    expires 1w;
        proxy_pass http://application;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Skiptu út 0.0.0.0fyrir IP tölu netþjónsins þíns.

Endurræstu Nginx með því að gera systemctl restart nginx. Leysaðu allar villur og haltu síðan áfram í næsta skref.

Skref 4: Dreifðu forritinu

Dreifðu forritinu með því að keyra bash ./deploy.sh.

Þú getur athugað stöðu umsóknarinnar með docker ps- það verða búnar til 5 myndir sem byrja á webapp. Nú, flettu http://0.0.0.0:3000/í vafranum þínum, þú munt sjá "Halló, Vultr :)" skilaboðin aftur.

Svo, hvaða munur skiptir þetta nákvæmlega?

Ef þú keyrir viðmiðunarpróf gegn hleðslujafnvægisstillingunni, myndirðu taka eftir því að meira af netþjónaauðlindum þínum er notað, sem er það sem þú myndir vilja, sérstaklega ef forritið þitt er byggt á tungumálum eins og Node þar sem það væri venjulega einn þráður. Ef þú þarft einhvern tíma að uppfæra forritið þitt geturðu gert það og keyrt aftur deploy.shtil að endurbyggja myndina og dreifa gámunum þínum.

Skildu eftir athugasemd

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Gervigreind er ekki í framtíðinni, hún er hér í nútímanum Í þessu bloggi Lestu hvernig gervigreindarforrit hafa haft áhrif á ýmsa geira.

DDOS árásir: Stutt yfirlit

DDOS árásir: Stutt yfirlit

Ertu líka fórnarlamb DDOS árása og ruglaður með forvarnaraðferðirnar? Lestu þessa grein til að leysa spurningar þínar.

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Þú gætir hafa heyrt að tölvuþrjótar græða mikið af peningum, en hefur þú einhvern tíma velt því fyrir þér hvernig þeir vinna sér inn svona peninga? við skulum ræða.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Viltu sjá byltingarkenndar uppfinningar frá Google og hvernig þessar uppfinningar breyttu lífi hvers manns í dag? Lestu síðan til að blogga til að sjá uppfinningar frá Google.

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Hugmyndin um að sjálfkeyrandi bílar fari á göturnar með hjálp gervigreindar er draumur sem við höfum átt um tíma núna. En þrátt fyrir nokkur loforð eru þau hvergi sjáanleg. Lestu þetta blogg til að læra meira…

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Þar sem vísindin þróast hratt og taka yfir mikið af viðleitni okkar, eykst hættan á því að verða fyrir óútskýranlegri einstæðu. Lestu, hvað sérkenni gæti þýtt fyrir okkur.

Virkni Big Data Reference Architecture Layers

Virkni Big Data Reference Architecture Layers

Lestu bloggið til að þekkja mismunandi lög í Big Data Architecture og virkni þeirra á einfaldasta hátt.

Þróun gagnageymslu – Infographic

Þróun gagnageymslu – Infographic

Geymsluaðferðir gagna hafa verið að þróast gæti verið frá fæðingu gagna. Þetta blogg fjallar um þróun gagnageymslu á grundvelli upplýsingamynda.

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

Í þessum stafræna heimi hafa snjallheimilistæki orðið afgerandi hluti af lífi. Hér eru nokkrir ótrúlegir kostir snjallheimatækja um hvernig þau gera líf okkar þess virði að lifa því og einfaldara.

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

Nýlega gaf Apple út macOS Catalina 10.15.4 viðbótaruppfærslu til að laga vandamál en svo virðist sem uppfærslan sé að valda fleiri vandamálum sem leiða til múrsteins á Mac vélum. Lestu þessa grein til að læra meira