Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Lub hom phiaj tseem ceeb ntawm Patroni yog muab siab rau PostgreSQL. Tab sis Patroni tsuas yog tus qauv xwb, tsis yog cov cuab yeej npaj tau (uas, feem ntau, tau hais hauv cov ntaub ntawv). Thaum xub thawj siab ib muag, tau teeb tsa Patroni hauv chav kuaj sim, koj tuaj yeem pom tias nws yog lub cuab yeej zoo li cas thiab nws yooj yim npaum li cas rau peb qhov kev sim ua kom tawg pawg. Txawm li cas los xij, hauv kev xyaum, hauv ib puag ncig tsim khoom, txhua yam tsis yog ib txwm tshwm sim zoo nkauj thiab zoo nkauj zoo li hauv chav kuaj sim.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Kuv mam qhia koj me ntsis txog kuv tus kheej. Kuv pib ua tus tswj hwm qhov system. Ua haujlwm hauv web development. Kuv tau ua haujlwm ntawm Data Egret txij li xyoo 2014. Lub tuam txhab tau koom nrog kev sab laj hauv thaj teb ntawm Postgres. Thiab peb ua haujlwm raws nraim Postgres, thiab peb ua haujlwm nrog Postgres txhua hnub, yog li peb muaj kev txawj ntse sib txawv ntsig txog kev ua haujlwm.

Thiab thaum kawg ntawm 2018, peb pib maj mam siv Patroni. Thiab qee qhov kev paub tau sau tseg. Peb qee qhov kuaj pom nws, kho nws, tuaj rau peb qhov kev coj ua zoo tshaj plaws. Thiab hauv daim ntawv tshaj tawm no kuv yuav tham txog lawv.

Sib nrug los ntawm Postgres, Kuv nyiam Linux. Kuv nyiam poke ib ncig ntawm nws thiab tshawb nrhiav, Kuv nyiam sau cov cores. Kuv nyiam virtualization, ntim, docker, Kubernetes. Tag nrho cov no txaus siab rau kuv, vim hais tias cov qub admin cwj pwm cuam tshuam. Kuv nyiam nrog saib xyuas. Thiab kuv nyiam postgres yam ntsig txog kev tswj hwm, piv txwv li rov ua dua, thaub qab. Thiab nyob rau hauv kuv lub sij hawm spare kuv sau nyob rau hauv Go. Kuv tsis yog software engineer, kuv tsuas yog sau rau kuv tus kheej hauv Go. Thiab nws ua rau kuv txaus siab.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

  • Kuv xav tias nej coob leej paub tias Postgres tsis muaj HA (High Availability) tawm ntawm lub thawv. Yuav kom tau txais HA, koj yuav tsum tau nruab ib yam dab tsi, teeb tsa nws, siv zog thiab tau txais nws.
  • Muaj ntau yam cuab yeej thiab Patroni yog ib qho ntawm lawv uas daws HA zoo nkauj thiab zoo heev. Tab sis los ntawm kev muab nws tag nrho rau hauv chav kuaj sim thiab khiav nws, peb tuaj yeem pom tias txhua yam ua haujlwm, peb tuaj yeem tsim kho qee qhov teeb meem, saib seb Patroni pab lawv li cas. Thiab peb yuav pom tias txhua yam ua haujlwm zoo heev.
  • Tab sis hauv kev xyaum, peb ntsib teeb meem sib txawv. Thiab kuv yuav tham txog cov teeb meem no.
  • Kuv mam li qhia koj seb peb kuaj tau li cas, qhov peb tweaked - txawm tias nws pab peb lossis tsis tau.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

  • Kuv yuav tsis qhia koj yuav ua li cas rau nruab Patroni, vim tias koj tuaj yeem google hauv Is Taws Nem, koj tuaj yeem saib cov ntaub ntawv teeb tsa kom nkag siab tias nws pib li cas, nws yuav teeb tsa li cas. Koj tuaj yeem nkag siab txog cov txheej txheem, cov qauv tsim, nrhiav cov ntaub ntawv hais txog nws hauv Is Taws Nem.
  • Kuv yuav tsis tham txog lwm tus txoj kev paub. Kuv tsuas yog hais txog cov teeb meem uas peb tau ntsib.
  • Thiab kuv yuav tsis tham txog cov teeb meem sab nraud ntawm Patroni thiab PostgreSQL. Yog tias, piv txwv li, muaj teeb meem cuam tshuam nrog kev sib npaug, thaum peb pawg tau tawg, kuv yuav tsis tham txog nws.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab qhov tsis lees paub me me ua ntej peb pib peb tsab ntawv ceeb toom.

Tag nrho cov teeb meem no uas peb tau ntsib, peb muaj lawv hauv thawj 6-7-8 lub hlis ntawm kev ua haujlwm. Nyob rau tib lub sijhawm, peb tuaj rau peb qhov kev coj ua zoo tshaj plaws hauv lub tebchaws. Thiab peb cov teeb meem ploj mus. Yog li ntawd, daim ntawv tshaj tawm tau tshaj tawm txog rau lub hlis dhau los, thaum nws yog txhua yam tshiab hauv kuv lub taub hau thiab kuv nco qab txhua yam zoo kawg nkaus.

Nyob rau hauv lub chav kawm ntawm kev npaj tsab ntawv ceeb toom, kuv twb tsa cov laus postmortems, ntsia lub cav. Thiab qee cov ntsiab lus tuaj yeem hnov ​​​​qab, lossis qee cov ntsiab lus tsis tuaj yeem tshawb xyuas tag nrho thaum lub sijhawm tshuaj xyuas cov teeb meem, yog li ntawm qee lub ntsiab lus nws yuav zoo li tias cov teeb meem tsis tau txiav txim siab tag nrho, lossis muaj qee qhov tsis muaj ntaub ntawv. Thiab yog li kuv thov kom koj zam txim rau kuv lub sijhawm no.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Patroni yog dab tsi?

  • Qhov no yog ib tug template rau lub tsev HA. Qhov ntawd yog qhov nws hais hauv cov ntaub ntawv. Thiab los ntawm kuv qhov kev xav, qhov no yog qhov tseeb heev. Patroni tsis yog ib lub mos txwv nyiaj uas yuav daws tau tag nrho koj cov teeb meem, uas yog, koj yuav tsum tau siv zog ua kom nws ua haujlwm thiab nqa cov txiaj ntsig.
  • Qhov no yog ib qho kev pabcuam tus neeg sawv cev uas tau teeb tsa rau txhua qhov kev pabcuam database thiab yog ib hom init system rau koj Postgres. Nws pib Postgres, nres, restarts, reconfigures, thiab hloov cov topology ntawm koj pawg.
  • Raws li, txhawm rau khaws lub xeev ntawm pawg, nws cov sawv cev tam sim no, raws li nws zoo li, yuav tsum muaj qee yam kev khaws cia. Thiab los ntawm qhov kev xav no, Patroni tau coj txoj hauv kev ntawm kev khaws cia hauv lub xeev nyob rau hauv ib qho system sab nraud. Nws yog ib tug faib configuration cia system. Nws tuaj yeem yog Etcd, Consul, ZooKeeper, lossis kubernetes Etcd, piv txwv li ib qho ntawm cov kev xaiv no.
  • Thiab ib qho ntawm cov yam ntxwv ntawm Patroni yog tias koj tau txais autofiler tawm ntawm lub thawv, tsuas yog los ntawm kev teeb tsa. Yog tias peb coj Repmgr rau kev sib piv, ces tus filer tau suav nrog. Nrog Repmgr, peb tau txais kev hloov pauv, tab sis yog tias peb xav tau autofiler, ces peb yuav tsum teeb tsa nws ntxiv. Patroni twb muaj autofiler tawm ntawm lub thawv.
  • Thiab muaj ntau yam ntxiv. Piv txwv li, txij nkawm ntawm configurations, pouring tshiab replicas, thaub qab, thiab lwm yam. Tab sis qhov no yog dhau lub Scope ntawm tsab ntawv ceeb toom, kuv yuav tsis tham txog nws.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab qhov tshwm sim me me yog tias lub luag haujlwm tseem ceeb ntawm Patroni yog ua ib qho autofile zoo thiab ntseeg tau kom peb cov pawg tseem ua haujlwm thiab daim ntawv thov tsis pom cov kev hloov pauv hauv pawg topology.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Tab sis thaum peb pib siv Patroni, peb lub cev tau txais kev nyuaj me ntsis. Yog tias ua ntej peb muaj Postgres, ces thaum siv Patroni peb tau txais Patroni nws tus kheej, peb tau txais DCS qhov chaw uas lub xeev khaws cia. Thiab nws txhua yam yuav tsum ua haujlwm qee yam. Yog li dab tsi tuaj yeem ua yuam kev?

Tej zaum yuav tawg:

  • Postgres tuaj yeem tawg. Nws tuaj yeem yog tus tswv lossis tus qauv, ib qho ntawm lawv yuav ua tsis tiav.
  • Lub Patroni nws tus kheej tuaj yeem tawg.
  • Lub DCS uas lub xeev khaws cia tuaj yeem tawg.
  • Thiab lub network tuaj yeem tawg.

Tag nrho cov ntsiab lus no kuv yuav xav txog hauv tsab ntawv ceeb toom.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Kuv yuav xav txog cov xwm txheej raws li lawv dhau los ua nyuaj, tsis yog los ntawm qhov pom tias rooj plaub muaj ntau yam. Thiab los ntawm qhov kev xav ntawm kev xav, hais tias rooj plaub no nyuaj rau kuv, nws nyuaj rau disassemble nws ... thiab vice versa, qee cov ntaub ntawv yog lub teeb thiab nws yooj yim rau disassemble nws.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab thawj rooj plaub yog qhov yooj yim tshaj plaws. Qhov no yog rooj plaub thaum peb coj ib pawg database thiab xa peb DCS cia rau tib pawg. Qhov no yog qhov yuam kev tshaj plaws. Qhov no yog qhov yuam kev hauv kev tsim vaj tsev, piv txwv li, sib txuas cov khoom sib txawv hauv ib qho chaw.

Yog li ntawd, muaj ib tug filer, cia peb mus nrog dab tsi tshwm sim.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab ntawm no peb txaus siab rau thaum lub filer tshwm sim. Qhov ntawd yog, peb txaus siab rau lub sijhawm no nyob rau lub sijhawm thaum lub xeev pawg hloov pauv.

Tab sis tus filer tsis yog ib txwm instantaneous, i.e. nws tsis siv ib chav tsev ntawm lub sij hawm, nws yuav ncua. Nws tuaj yeem ua tau ntev.

Yog li ntawd, nws muaj lub sijhawm pib thiab lub sijhawm kawg, piv txwv li nws yog qhov kev tshwm sim tas mus li. Thiab peb faib tag nrho cov xwm txheej rau hauv peb lub sijhawm: peb muaj sijhawm ua ntej lub filer, thaum lub sijhawm filer thiab tom qab filer. Ntawd yog, peb xav txog txhua yam xwm txheej hauv lub sijhawm no.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab thawj qhov, thaum filer tshwm sim, peb nrhiav qhov ua rau ntawm qhov tshwm sim, dab tsi yog qhov ua rau ua rau tus filer.

Yog hais tias peb saib ntawm cov cav, lawv yuav classic Patroni cav. Nws qhia peb hauv lawv tias tus neeg rau zaub mov tau dhau los ua tus tswv, thiab lub luag haujlwm ntawm tus tswv tau dhau mus rau qhov node. Ntawm no nws yog highlighted.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Tom ntej no, peb yuav tsum nkag siab tias yog vim li cas tus filer tshwm sim, piv txwv li dab tsi tshwm sim uas ua rau lub luag haujlwm ntawm tus tswv txav ntawm ib qho mus rau lwm qhov. Thiab nyob rau hauv cov ntaub ntawv no, txhua yam yog yooj yim. Peb muaj qhov yuam kev hauv kev cuam tshuam nrog lub kaw lus cia. Tus tswv pom tau hais tias nws tsis tuaj yeem ua haujlwm nrog DCS, uas yog, muaj qee yam teeb meem nrog kev sib cuam tshuam. Thiab nws hais tias nws tsis tuaj yeem ua tus tswv thiab tawm haujlwm ntxiv lawm. Cov kab no "demoted self" hais raws nraim li ntawd.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Yog tias peb saib cov xwm txheej uas ua ntej tus filer, peb tuaj yeem pom muaj qhov laj thawj heev uas ua rau muaj teeb meem txuas ntxiv rau tus wizard.

Yog tias peb saib ntawm Patroni cov cav, peb yuav pom tias peb muaj ntau qhov yuam kev, ncua sijhawm, piv txwv li tus neeg sawv cev Patroni tsis tuaj yeem ua haujlwm nrog DCS. Hauv qhov no, qhov no yog tus neeg saib xyuas Consul, uas yog kev sib txuas lus ntawm chaw nres nkoj 8500.

Thiab qhov teeb meem ntawm no yog tias Patroni thiab cov ntaub ntawv tau khiav ntawm tib tus tswv tsev. Thiab Consul servers tau pib ntawm tib lub node. Los ntawm kev tsim cov khoom thauj ntawm tus neeg rau zaub mov, peb tsim teeb meem rau Consul servers thiab. Lawv sib txuas lus tsis tau zoo.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Tom qab qee lub sijhawm, thaum lub sijhawm thauj khoom poob qis, peb Patroni tuaj yeem sib txuas lus nrog cov neeg sawv cev dua. Ib txwm ua haujlwm rov pib dua. Thiab tib Pgdb-2 server tau dhau los ua tus tswv dua. Ntawd yog, muaj qhov ntxeev me me, vim tias lub pob tau tawm ntawm lub hwj chim ntawm tus tswv, thiab tom qab ntawd coj lawv rov qab, uas yog, txhua yam rov qab zoo li nws yog.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab qhov no tuaj yeem suav tias yog lub tswb cuav, lossis nws tuaj yeem suav tias Patroni tau ua txhua yam yog. Qhov ntawd yog, nws paub tias nws tsis tuaj yeem tswj hwm lub xeev ntawm pawg thiab tshem tawm nws txoj cai.

Thiab ntawm no qhov teeb meem tshwm sim vim qhov tseeb tias Consul servers nyob ntawm tib lub kho vajtse raws li lub hauv paus. Raws li, ib qho kev thauj khoom: txawm tias nws yog qhov load ntawm disks lossis processors, nws kuj cuam tshuam rau kev cuam tshuam nrog pawg Consul.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab peb txiav txim siab tias nws yuav tsum tsis txhob nyob ua ke, peb faib ib pawg cais rau Consul. Thiab Patroni twb tau ua haujlwm nrog tus Consul cais, uas yog, muaj ib pawg Postgres cais, ib pawg Consul cais. Qhov no yog ib qho kev qhia yooj yim ntawm kev nqa thiab khaws tag nrho cov khoom no kom tsis txhob nyob ua ke.

Raws li ib qho kev xaiv, koj tuaj yeem twist qhov tsis muaj ttl, loop_wait, retry_timeout, piv txwv li sim ua kom muaj sia nyob rau lub sijhawm luv luv los ntawm kev nce cov kev txwv no. Tab sis qhov no tsis yog qhov kev xaiv zoo tshaj plaws, vim tias qhov kev thauj khoom no tuaj yeem siv sijhawm ntev. Thiab peb tsuas yog mus dhau cov kev txwv ntawm cov kev txwv no. Thiab qhov ntawd yuav tsis pab tiag tiag.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thawj qhov teeb meem, raws li koj nkag siab, yog qhov yooj yim. Peb coj thiab muab DCS ua ke nrog lub hauv paus, peb tau txais ib qho teeb meem.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Qhov teeb meem thib ob zoo ib yam li thawj. Nws zoo ib yam uas peb rov muaj teeb meem cuam tshuam nrog DCS system.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Yog tias peb saib ntawm cov cav, peb yuav pom tias peb rov muaj kev sib txuas lus yuam kev. Thiab Patroni hais tias kuv tsis tuaj yeem cuam tshuam nrog DCS yog li tus tswv tam sim no nkag mus rau hauv hom replica.

Tus tswv qub dhau los ua tus qauv, ntawm no Patroni ua haujlwm tawm, raws li nws yuav tsum yog. Nws khiav pg_rewind los thim rov qab cov ntaub ntawv sib pauv thiab tom qab ntawd txuas mus rau tus tswv tshiab kom ntes nrog tus tswv tshiab. Ntawm no Patroni ua haujlwm tawm, raws li nws yuav tsum.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Ntawm no peb yuav tsum nrhiav qhov chaw uas ua ntej tus filer, piv txwv li cov yuam kev uas ua rau peb muaj filer. Thiab nyob rau hauv no hais txog, Patroni cav yog heev yooj yim mus ua hauj lwm nrog. Nws sau tib cov lus ntawm ib ntus. Thiab yog tias peb pib scrolling los ntawm cov cav no sai, ces peb yuav pom los ntawm cov cav uas cov cav tau hloov pauv, uas txhais tau hais tias qee qhov teeb meem tau pib. Peb rov qab mus rau qhov chaw no sai sai, saib seb muaj dab tsi tshwm sim.

Thiab nyob rau hauv ib qho xwm txheej, cov cav yuav zoo li no. Tus tswv ntawm lub xauv raug kuaj xyuas. Thiab yog tias tus tswv, piv txwv li, tau hloov, ces qee qhov xwm txheej yuav tshwm sim uas Patroni yuav tsum teb rau. Tab sis qhov no, peb zoo. Peb tab tom nrhiav rau qhov chaw uas qhov yuam kev pib.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab tau scrolled mus rau qhov chaw uas qhov yuam kev pib tshwm sim, peb pom tias peb tau muaj qhov pib-fileover. Thiab txij li thaum peb qhov kev ua yuam kev tau cuam tshuam nrog kev cuam tshuam nrog DCS thiab hauv peb rooj plaub peb siv Consul, peb kuj saib Consul cav, dab tsi tshwm sim nyob rau ntawd.

Raws li kev sib piv lub sijhawm ntawm tus neeg sau ntawv thiab lub sijhawm nyob rau hauv Consul cav, peb pom tias peb cov neeg nyob ze hauv pawg Consul pib tsis ntseeg tias muaj lwm tus tswvcuab ntawm pawg Consul.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab yog tias koj tseem saib cov cav ntawm lwm tus neeg sawv cev ntawm Consul, koj tuaj yeem pom tias qee yam kev sib tsoo network tau tshwm sim nyob rau ntawd. Thiab tag nrho cov tswv cuab ntawm Consul pawg ntseeg ib leeg lub neej. Thiab qhov no yog qhov impetus rau filer.

Yog tias koj saib dab tsi tshwm sim ua ntej cov kev ua yuam kev no, koj tuaj yeem pom tias muaj txhua yam kev ua yuam kev, piv txwv li, hnub kawg, RPC poob, uas yog, muaj qee yam teeb meem hauv kev sib cuam tshuam ntawm Consul pawg neeg koom nrog ib leeg. .

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Cov lus teb yooj yim tshaj yog kho lub network. Tab sis rau kuv, sawv ntawm lub podium, nws yooj yim hais qhov no. Tab sis cov xwm txheej zoo li no tsis yog ib txwm tus neeg siv khoom tuaj yeem them taus kho lub network. Nws tuaj yeem nyob hauv DC thiab tsis tuaj yeem kho lub network, cuam tshuam rau cov khoom siv. Thiab yog li qee qhov kev xaiv yuav xav tau.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Muaj kev xaiv:

  • Qhov kev xaiv yooj yim tshaj plaws, uas tau sau tseg, hauv kuv lub tswv yim, txawm tias nyob hauv cov ntaub ntawv, yog kom kaw Consul checks, uas yog, tsuas yog hla ib qho khoob khoob. Thiab peb qhia rau tus neeg saib xyuas Consul tsis txhob siv cov tshev. Nrog rau cov tshev no, peb tuaj yeem tsis quav ntsej txog cov cua daj cua dub no thiab tsis pib ua cov ntaub ntawv.
  • Lwm qhov kev xaiv yog muab ob npaug rau kos raft_multiplier. Qhov no yog qhov parameter ntawm Consul server nws tus kheej. Los ntawm lub neej ntawd, nws yog teem rau 5. Qhov no tus nqi yog pom zoo los ntawm cov ntaub ntawv rau staging ib puag ncig. Qhov tseeb, qhov no cuam tshuam qhov zaus ntawm kev xa xov ntawm cov tswv cuab ntawm Consul network. Qhov tseeb, qhov ntsuas no cuam tshuam rau kev sib txuas lus ceev ntawm cov tswv cuab ntawm Consul pawg. Thiab rau kev tsim khoom, nws twb pom zoo kom txo nws kom cov nodes pauv lus ntau zaus.
  • Lwm qhov kev xaiv uas peb tau los nrog yog txhawm rau nce qhov tseem ceeb ntawm Consul cov txheej txheem ntawm lwm cov txheej txheem rau cov txheej txheem txheej txheem txheej txheem. Muaj xws li "zoo" parameter, nws tsuas yog txiav txim siab qhov tseem ceeb ntawm cov txheej txheem uas tau coj mus rau hauv tus account los ntawm OS teem sijhawm thaum teem sijhawm. Peb kuj tau txo tus nqi zoo rau cov neeg sawv cev Consul, i.e. nce qhov tseem ceeb kom lub operating system muab Consul txheej txheem ntau lub sij hawm los ua hauj lwm thiab ua raws li lawv cov cai. Hauv peb qhov xwm txheej, qhov no daws tau peb qhov teeb meem.
  • Lwm qhov kev xaiv yog tsis siv Consul. Kuv muaj ib tug phooj ywg uas yog tus txhawb nqa loj Etcd. Thiab peb niaj hnub sib cav nrog nws uas zoo dua Etcd lossis Consul. Tab sis hais txog qhov zoo dua, peb feem ntau pom zoo nrog nws tias Consul muaj tus neeg sawv cev uas yuav tsum tau khiav ntawm txhua qhov ntawm cov ntaub ntawv. Ntawd yog, kev sib cuam tshuam ntawm Patroni nrog Pawg Consul mus los ntawm tus neeg sawv cev no. Thiab tus neeg sawv cev no dhau los ua qhov tsis muaj zog. Yog tias muaj qee yam tshwm sim rau tus neeg sawv cev, ces Patroni tsis tuaj yeem ua haujlwm nrog Consul pawg. Thiab qhov no yog qhov teeb meem. Tsis muaj tus neeg sawv cev hauv Etcd txoj kev npaj. Patroni tuaj yeem ua haujlwm ncaj qha nrog cov npe Etcd servers thiab twb tau sib txuas lus nrog lawv. Hauv qhov no, yog tias koj siv Etcd hauv koj lub tuam txhab, ces Etcd yuav yog qhov kev xaiv zoo dua li Consul. Tab sis peb ntawm peb cov neeg siv khoom yeej ib txwm txwv los ntawm cov neeg siv khoom tau xaiv thiab siv. Thiab peb muaj Consul rau feem ntau rau txhua tus neeg siv khoom.
  • Thiab qhov kawg taw tes yog los kho cov nqi parameter. Peb tuaj yeem tsa cov kev txwv no los ntawm kev cia siab tias peb cov teeb meem hauv lub sijhawm luv luv yuav luv luv thiab tsis poob rau sab nraud ntawm cov kev txwv no. Txoj kev no peb tuaj yeem txo qis kev ua phem ntawm Patroni rau autofile yog tias qee qhov teeb meem hauv network tshwm sim.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Kuv xav tias ntau tus uas siv Patroni paub txog cov lus txib no.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Cov lus txib no qhia txog lub xeev tam sim no ntawm pawg. Thiab thaum xub thawj siab ib muag, daim duab no yuav zoo li qub. Peb muaj ib tug tswv, peb muaj replica, tsis muaj replication lag. Tab sis daim duab no yog ib txwm raws nraim kom txog thaum peb paub tias pawg no yuav tsum muaj peb lub pob, tsis yog ob.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Raws li, muaj autofile. Thiab tom qab no autofile, peb replica ploj lawm. Peb yuav tsum paub tias yog vim li cas nws ploj mus thiab coj nws rov qab los, kho nws. Thiab peb rov mus rau lub cav thiab saib yog vim li cas peb thiaj li muaj qhov pib-fileover.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Nyob rau hauv cov ntaub ntawv no, tus thib ob replica los ua tus tswv. Nws yog tag nrho ntawm no.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab peb yuav tsum tau saib cov replica uas poob tawm thiab qhov twg tsis nyob hauv pawg. Peb qhib Patroni cav thiab pom tias peb muaj teeb meem thaum lub sij hawm tus txheej txheem ntawm kev txuas mus rau pawg ntawm pg_rewind theem. Txhawm rau txuas mus rau pawg, koj yuav tsum rov thim rov qab daim ntawv teev kev sib pauv, thov cov ntaub ntawv yuav tsum tau ua los ntawm tus tswv, thiab siv nws kom ntes nrog tus tswv.

Nyob rau hauv cov ntaub ntawv no, peb tsis muaj kev sib pauv log thiab lub replica yuav pib tsis tau. Raws li, peb nres Postgres nrog qhov yuam kev. Thiab yog li ntawd nws tsis yog nyob rau hauv pawg.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Peb yuav tsum nkag siab tias vim li cas nws tsis nyob hauv pawg thiab yog vim li cas tsis muaj cov cav. Peb mus rau tus tswv tshiab thiab saib seb nws muaj dab tsi hauv cov cav. Nws hloov tawm tias thaum pg_rewind ua tiav, qhov chaw kuaj xyuas tau tshwm sim. Thiab qee qhov kev hloov pauv qub tau tsuas yog hloov npe. Thaum tus tswv qub sim txuas mus rau tus tswv tshiab thiab nug cov cav no, lawv twb tau hloov npe lawm, lawv tsuas yog tsis muaj nyob.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Kuv piv cov ntawv teev sijhawm thaum cov xwm txheej no tshwm sim. Thiab qhov sib txawv yog qhov tseeb 150 milliseconds, uas yog, qhov chaw kuaj xyuas tiav hauv 369 milliseconds, WAL ntu tau hloov npe. Thiab lus nyob rau hauv 517, tom qab 150 milliseconds, rewind pib ntawm lub qub replica. Ntawd yog, qhov tseeb 150 milliseconds tau txaus rau peb kom lub replica tsis tuaj yeem txuas thiab khwv tau.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Cov kev xaiv yog dab tsi?

Peb pib siv replication slots. Peb xav tias nws yog qhov zoo. Txawm hais tias nyob rau thawj theem ntawm kev ua haujlwm peb muab tua cov slots. Nws zoo li peb tias yog tias cov slots sau ntau ntawm WAL ntu, peb tuaj yeem tso tus tswv. Nws yuav poob. Peb raug kev txom nyem rau qee lub sijhawm tsis muaj qhov qhib. Thiab peb pom tau hais tias peb xav tau slots, peb rov qab cov slots.

Tab sis muaj ib qho teeb meem ntawm no, tias thaum tus tswv mus rau lub replica, nws deletes cov slots thiab deletes WAL ntu nrog rau cov slots. Thiab txhawm rau tshem tawm qhov teeb meem no, peb txiav txim siab los tsa wal_keep_segments parameter. Nws defaults rau 8 ntu. Peb tsa nws mus rau 1 thiab saib seb peb muaj qhov chaw dawb npaum li cas. Thiab peb pub 000 gigabytes rau wal_keep_segments. Ntawd yog, thaum hloov pauv, peb ib txwm muaj qhov khaws cia ntawm 16 gigabytes ntawm kev sib pauv cov ntawv teev npe ntawm txhua qhov nodes.

Thiab ntxiv - nws tseem muaj feem cuam tshuam rau kev saib xyuas mus sij hawm ntev. Cia peb hais tias peb yuav tsum hloov kho ib qho ntawm cov replicas. Thiab peb xav tua nws. Peb yuav tsum hloov kho cov software, tej zaum lub operating system, lwm yam. Thiab thaum peb tua ib tug replica, lub qhov rau qhov replica kuj raug tshem tawm. Thiab yog tias peb siv wal_keep_segments me me, tom qab ntawd nrog qhov tsis tuaj yeem ntev ntawm qhov hloov pauv, cov ntawv teev kev sib pauv yuav ploj. Peb yuav tsa ib tug replica, nws yuav thov cov kev sib pauv cav qhov twg nws nres, tab sis lawv yuav tsis nyob rau tus tswv. Thiab lub replica yuav tsis tuaj yeem txuas ib qho. Yog li ntawd, peb khaws cov ntawv xov xwm loj.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Peb muaj lub hauv paus tsim khoom. Twb twb muaj tej yaam num lawm.

Muaj ib tug filer. Peb mus rau hauv thiab saib - txhua yam nyob rau hauv kev txiav txim, lub replicas nyob rau hauv qhov chaw, tsis muaj replication lag. Tsis muaj qhov yuam kev hauv cov cav, txhua yam yog nyob rau hauv kev txiav txim.

Pab pawg khoom lag luam hais tias yuav tsum muaj qee cov ntaub ntawv, tab sis peb pom nws los ntawm ib qhov chaw, tab sis peb tsis pom nws hauv cov ntaub ntawv. Thiab peb yuav tsum nkag siab tias muaj dab tsi tshwm sim rau lawv.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Nws yog tseeb tias pg_rewind nco lawv. Peb tam sim ntawd to taub qhov no, tab sis mus saib dab tsi tshwm sim.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Hauv cov cav, peb tuaj yeem nrhiav tau thaum tus filer tshwm sim, leej twg tau los ua tus tswv, thiab peb tuaj yeem txiav txim siab tias leej twg yog tus tswv qub thiab thaum nws xav ua tus hloov pauv, piv txwv li peb xav tau cov cav no txhawm rau txhawm rau txheeb xyuas tus lej ntawm cov ntaub ntawv sib pauv. tau ploj lawm.

Peb tus qub tswv tau rebooted. Thiab Patroni tau sau npe hauv autorun. Launched Patroni. Tom qab ntawd nws pib Postgres. Ntau precisely, ua ntej pib Postgres thiab ua ntej ua nws ib tug replica, Patroni launched lub pg_rewind txheej txheem. Raws li, nws tshem tawm ib feem ntawm cov ntawv teev npe, rub tawm cov tshiab thiab txuas nrog. Ntawm no Patroni ua haujlwm ntse, uas yog, raws li xav tau. Cov pawg tau rov qab los. Peb muaj 3 qhov, tom qab lub filer 3 nodes - txhua yam yog txias.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Peb tau poob qee cov ntaub ntawv. Thiab peb yuav tsum to taub tias peb tau poob ntau npaum li cas. Peb tab tom nrhiav rau lub sijhawm tsuas yog thaum peb tau rov qab los. Peb tuaj yeem pom nws hauv cov ntawv sau cia. Rov qab pib, ua ib yam dab tsi nyob ntawd thiab xaus.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Peb yuav tsum nrhiav txoj hauj lwm nyob rau hauv kev sib pauv log qhov twg tus qub tswv tawm. Hauv qhov no, qhov no yog lub cim. Thiab peb xav tau lub cim thib ob, uas yog, qhov kev ncua deb uas tus tswv qub txawv ntawm tus tshiab.

Peb coj pg_wal_lsn_diff li ib txwm thiab sib piv ob lub cim no. Thiab qhov no, peb tau txais 17 megabytes. Ntau lossis me me, txhua tus txiav txim siab rau nws tus kheej. Vim hais tias rau ib tug neeg 17 megabytes tsis ntau, rau ib tug neeg nws yog ntau thiab tsis tsim nyog. Ntawm no, txhua tus neeg txiav txim siab rau nws tus kheej raws li qhov xav tau ntawm kev lag luam.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Tab sis peb tau pom dab tsi rau peb tus kheej?

Ua ntej, peb yuav tsum txiav txim siab rau peb tus kheej - puas yog peb ib txwm xav tau Patroni rau autostart tom qab lub kaw lus reboot? Feem ntau peb yuav tsum mus cuag tus tswv qub, saib nws mus deb npaum li cas. Tej zaum tshuaj xyuas ntu ntawm daim ntawv teev npe, saib dab tsi nyob ntawd. Thiab kom nkag siab seb peb puas tuaj yeem poob cov ntaub ntawv no lossis seb peb puas yuav tsum tau khiav tus tswv qub hauv hom standalone thiaj li rub cov ntaub ntawv no tawm.

Thiab tsuas yog tom qab ntawd peb yuav tsum txiav txim siab seb peb puas tuaj yeem muab cov ntaub ntawv no pov tseg lossis peb tuaj yeem rov qab tau, txuas cov node ua ib qho kev hloov pauv rau peb pawg.

Tsis tas li ntawd, muaj qhov "max_lag_on_failover" parameter. Los ntawm lub neej ntawd, yog tias kuv lub cim xeeb ua haujlwm rau kuv, qhov ntsuas no muaj tus nqi ntawm 1 megabyte.

Nws ua haujlwm li cas? Yog tias peb cov ntaub ntawv rov qab los ntawm 1 megabyte ntawm cov ntaub ntawv nyob rau hauv cov ntaub ntawv rov ua dua, ces qhov kev hloov pauv no tsis koom nrog kev xaiv tsa. Thiab yog tias mam li nco dheev muaj ib qho fileover, Patroni saib qhov twg replicas yog lagging qab. Yog tias lawv nyob tom qab los ntawm ntau cov ntaub ntawv sib pauv, lawv tsis tuaj yeem dhau los ua tus tswv. Qhov no yog ib qho kev ruaj ntseg zoo heev uas tiv thaiv koj los ntawm kev poob ntau cov ntaub ntawv.

Tab sis muaj ib qho teeb meem nyob rau hauv hais tias qhov replication lag nyob rau hauv lub Patroni pawg thiab DCS yog hloov kho nyob rau hauv ib tug tej lub sij hawm. Kuv xav tias 30 vib nas this yog tus nqi ttl default.

Raws li, tej zaum yuav muaj qhov xwm txheej uas muaj ib qho kev lag luam rov ua dua tshiab rau hauv DCS, tab sis qhov tseeb yuav muaj qhov sib txawv kiag li lossis tej zaum yuav tsis muaj lag luam tag nrho, piv txwv li qhov no tsis yog lub sijhawm tiag tiag. Thiab nws tsis yog ib txwm muaj kev cuam tshuam cov duab tiag tiag. Thiab nws tsis tsim nyog ua zoo nkauj logic rau nws.

Thiab qhov kev pheej hmoo ntawm kev poob ib txwm nyob. Thiab nyob rau hauv cov ntaub ntawv phem tshaj, ib tug formula, thiab nyob rau hauv nruab nrab rooj plaub, ib tug formula. Ntawd yog, thaum peb npaj qhov kev siv ntawm Patroni thiab ntsuas cov ntaub ntawv ntau npaum li cas peb tuaj yeem poob, peb yuav tsum tso siab rau cov qauv no thiab kwv yees kwv yees li cas cov ntaub ntawv peb tuaj yeem poob.

Thiab muaj xov xwm zoo. Thaum tus tswv qub tau mus tom ntej, nws tuaj yeem mus tom ntej vim qee qhov txheej txheem keeb kwm yav dhau los. Ntawd yog, muaj qee yam ntawm autovacuum, nws tau sau cov ntaub ntawv, khaws cia rau hauv kev sib pauv log. Thiab peb tuaj yeem yooj yim tsis quav ntsej thiab poob cov ntaub ntawv no. Tsis muaj teeb meem hauv qhov no.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab qhov no yog li cas cov cav zoo li yog qhov siab tshaj plaws_lag_on_failover tau teeb tsa thiab filer tau tshwm sim, thiab koj yuav tsum xaiv tus tswv tshiab. Tus qauv ntsuas ntsuas nws tus kheej tsis muaj peev xwm koom nrog hauv kev xaiv tsa. Thiab nws tsis kam koom nrog kev sib tw rau tus thawj coj. Thiab nws tos kom xaiv tus tswv tshiab, kom nws thiaj li txuas tau rau nws. Qhov no yog ib qho kev ntsuas ntxiv tiv thaiv cov ntaub ntawv poob.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Ntawm no peb muaj pab pawg khoom uas tau sau tias lawv cov khoom muaj teeb meem nrog Postgres. Tib lub sijhawm, tus tswv nws tus kheej tsis tuaj yeem nkag mus, vim tias nws tsis muaj nyob ntawm SSH. Thiab autofile tsis tshwm sim ib yam.

Tus tswv tsev no raug yuam kom rov pib dua. Vim hais tias ntawm lub reboot, ib tug auto-file tshwm sim, txawm hais tias nws muaj peev xwm ua ib phau ntawv pib-file, raws li kuv tam sim no nkag siab. Thiab tom qab lub reboot, peb twb mus saib dab tsi peb muaj nrog tus tswv tam sim no.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Tib lub sijhawm, peb paub ua ntej tias peb muaj teeb meem nrog cov disks, uas yog, peb twb paub los ntawm kev saib xyuas qhov twg yuav khawb thiab nrhiav dab tsi.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Peb tau nkag mus rau hauv lub log postgres, pib pom dab tsi tshwm sim muaj. Peb pom cov lus cog tseg uas nyob ntawd rau ib, ob, peb vib nas this, uas tsis yog txhua yam. Peb pom tias peb lub tshuab nqus tsev vacuum pib qeeb heev thiab txawv txav. Thiab peb pom cov ntaub ntawv ib ntus ntawm lub disk. Ntawd yog, cov no yog tag nrho cov cim qhia txog teeb meem nrog disks.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Peb ntsia mus rau hauv lub system dmesg (kernel cav). Thiab peb pom tias peb muaj teeb meem nrog ib qho ntawm cov disks. Lub disk subsystem yog software Raid. Peb tau saib ntawm /proc/mdstat thiab pom tias peb ploj lawm ib tsav. Ntawd yog, muaj Raid ntawm 8 disks, peb ploj lawm ib qho. Yog tias koj ua tib zoo saib ntawm tus swb, ces hauv cov zis koj tuaj yeem pom tias peb tsis muaj sde muaj. Ntawm peb, conditionally hais lus, lub disk tau poob tawm. Qhov no ua rau muaj teeb meem disk, thiab cov ntawv thov kuj ntsib teeb meem thaum ua haujlwm nrog Postgres pawg.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab nyob rau hauv cov ntaub ntawv no, Patroni yuav tsis pab peb nyob rau hauv txhua txoj kev, vim hais tias Patroni tsis muaj lub luag hauj lwm los saib xyuas lub xeev ntawm lub server, lub xeev ntawm lub disk. Thiab peb yuav tsum saib xyuas cov xwm txheej zoo li no los ntawm kev saib xyuas sab nraud. Peb sai ntxiv disk saib xyuas rau kev saib xyuas sab nraud.

Thiab muaj kev xav zoo li no - puas tuaj yeem ua laj kab lossis saib xyuas software pab peb? Peb xav tias nws yuav tsis tshua tau pab peb hauv qhov no, vim hais tias thaum lub sij hawm muaj teeb meem Patroni txuas ntxiv cuam tshuam nrog DCS pawg thiab tsis pom muaj teeb meem. Ntawd yog, los ntawm qhov pom ntawm DCS thiab Patroni, txhua yam zoo nrog pawg, txawm hais tias qhov tseeb muaj teeb meem nrog lub disk, muaj teeb meem nrog cov ntaub ntawv muaj.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Hauv kuv lub tswv yim, qhov no yog ib qho teeb meem txawv tshaj plaws uas kuv tau tshawb fawb ntev heev, kuv tau nyeem ntau lub cav, rov xaiv thiab hu nws ua pawg simulator.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Qhov teeb meem yog tias tus tswv qub tsis tuaj yeem dhau los ua qhov qub qub, piv txwv li Patroni pib nws, Patroni tau pom tias qhov node tam sim no yog qhov hloov pauv, tab sis tib lub sijhawm nws tsis yog qhov qub qub. Tam sim no koj yuav pom yog vim li cas. Nov yog qhov kuv tau khaws cia los ntawm kev txheeb xyuas qhov teeb meem ntawd.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab nws tau pib li cas? Nws pib, raws li nyob rau hauv cov teeb meem yav dhau los, nrog disc nres. Peb tau cog lus rau ib pliag, ob.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Muaj kev sib tsoo hauv kev sib txuas, piv txwv li, cov neeg siv khoom tawg.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Muaj kev thaiv ntawm qhov sib txawv hnyav.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab, raws li, lub disk subsystem tsis teb heev.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab qhov tsis meej tshaj plaws rau kuv yog qhov kev thov kaw tam sim uas tuaj txog. Postgres muaj peb hom kev kaw:

  • Nws yog qhov zoo thaum peb tos rau txhua tus neeg siv khoom sib txuas ntawm lawv tus kheej.
  • Muaj ceev ceev thaum peb yuam cov neeg siv khoom txiav tawm vim tias peb yuav kaw.
  • Thiab tam sim ntawd. Hauv qhov no, tam sim ntawd tsis txawm hais kom cov neeg siv khoom kaw, nws tsuas yog kaw tsis tau ceeb toom. Thiab rau txhua tus neeg siv khoom, lub operating system twb xa cov lus RST (ib TCP cov lus hais tias kev sib txuas tau cuam tshuam thiab tus neeg siv khoom tsis muaj dab tsi ntxiv los ntes).

Leej twg xa lub teeb liab no? Postgres cov txheej txheem keeb kwm yav dhau tsis xa cov teeb liab mus rau ib leeg, piv txwv li qhov no yog tua-9. Lawv tsis xa cov khoom zoo li no rau ib leeg, lawv tsuas yog hnov ​​​​qab rau tej yam xws li, piv txwv li qhov no yog qhov rov pib dua ntawm Postgres. Leej twg xa tuaj, kuv tsis paub.

Kuv saib ntawm "kawg" hais kom ua thiab kuv pom ib tus neeg uas tseem nkag rau hauv lub server no nrog peb, tab sis kuv txaj muag heev los nug ib lo lus nug. Tej zaum nws raug tua -9. Kuv yuav pom tua -9 hauv cov cav, vim Postgres hais tias nws tua -9, tab sis kuv tsis pom nws nyob rau hauv lub cav.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Saib ntxiv, kuv pom tias Patroni tsis sau rau lub cav rau lub sijhawm ntev heev - 54 vib nas this. Thiab yog tias peb piv ob lub sijhawm, tsis muaj cov lus hais txog 54 vib nas this.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab lub sijhawm no muaj autofile. Patroni tau ua haujlwm zoo ntawm no dua. Peb tus tswv qub twb tsis muaj, muaj ib yam dab tsi tshwm sim rau nws. Thiab kev xaiv tsa ntawm tus tswv tshiab tau pib. Txhua yam ua tau zoo ntawm no. Peb pgsql01 tau dhau los ua tus thawj coj tshiab.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Peb muaj ib tug replica uas tau los ua ib tug tswv. Thiab muaj lus teb thib ob. Thiab muaj teeb meem nrog tus thib ob replica. Nws sim reconfigure. Raws li kuv nkag siab nws, nws sim hloov recovery.conf, rov pib Postgres thiab txuas mus rau tus tswv tshiab. Nws sau cov lus txhua 10 vib nas this uas nws tab tom sim, tab sis nws tsis ua tiav.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab thaum lub sijhawm sim no, lub teeb liab kaw tam sim tuaj txog ntawm tus tswv qub. Tus tswv rov pib dua. Thiab tseem rov qab nres vim tus qub tswv mus rau hauv reboot. Ntawd yog, lub replica tsis tuaj yeem txuas rau nws, vim nws nyob hauv hom kaw.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Qee lub sijhawm, nws ua haujlwm, tab sis kev rov ua dua tsis tau pib.

Kuv tsuas kwv yees yog tias muaj qhov chaw nyob qub qub hauv recovery.conf. Thiab thaum tus tswv tshiab tshwm sim, tus thib ob replica tseem sim txuas mus rau tus tswv qub.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thaum Patroni pib ntawm qhov thib ob replica, lub pob pib tab sis tsis tuaj yeem rov ua dua. Thiab ib tug replication lag tau tsim, uas zoo li ib yam dab tsi zoo li no. Ntawd yog, tag nrho peb cov nodes nyob rau hauv qhov chaw, tab sis lub thib ob ntawm lagged qab.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Nyob rau tib lub sijhawm, yog tias koj saib ntawm cov cav uas tau sau, koj tuaj yeem pom tias kev rov ua dua tsis tuaj yeem pib vim tias cov log tsheb sib txawv. Thiab cov kev hloov pauv uas tus tswv muab, uas tau teev tseg hauv recovery.conf, tsuas yog tsis haum rau peb qhov tam sim no.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab ntawm no kuv ua yuam kev. Kuv yuav tsum tuaj saib dab tsi nyob rau hauv recovery.conf los ntsuam xyuas kuv hypothesis tias peb twb txuas mus rau tus tswv tsis ncaj ncees lawm. Tab sis tom qab ntawd kuv tsuas yog cuam tshuam nrog qhov no thiab nws tsis tshwm sim rau kuv, lossis kuv pom tias qhov hloov pauv tau poob qis thiab yuav tsum tau rov qab ua dua, uas yog, kuv tau ua haujlwm tsis tu ncua. Nov yog kuv qhov kev sib koom ua ke.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Tom qab 30 feeb, tus thawj tswj hwm twb tuaj, piv txwv li kuv rov pib Patroni ntawm qhov hloov pauv. Kuv twb tso tseg lawm, kuv xav tias nws yuav tsum tau rov qab ua dua. Thiab kuv xav tias - Kuv yuav rov pib dua Patroni, tej zaum qee yam zoo yuav tig tawm. Rov qab pib. Thiab lub hauv paus txawm qhib, nws tau npaj los txais kev sib txuas.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Replication tau pib. Tab sis ib feeb tom qab nws tau poob nrog qhov yuam kev uas cov ntawv teev kev lag luam tsis haum rau nws.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Kuv xav tias kuv yuav rov pib dua. Kuv rov pib dua Patroni dua, thiab kuv tsis rov pib dua Postgres, tab sis rov pib dua Patroni hauv kev cia siab tias nws yuav pib siv cov ntaub ntawv zoo nkauj.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Qhov kev rov ua dua tshiab tau pib dua, tab sis cov cim hauv kev sib pauv hloov pauv, lawv tsis zoo ib yam li qhov kev sim pib dhau los. Replication nres dua. Thiab cov lus twb txawv me ntsis lawm. Thiab nws tsis yog ntaub ntawv ntau rau kuv.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab tom qab ntawd nws tshwm sim rau kuv - yuav ua li cas yog tias kuv rov pib dua Postgres, lub sijhawm no kuv ua qhov chaw kuaj xyuas ntawm tus tswv tam sim no kom txav mus rau qhov taw tes hauv kev hloov pauv me ntsis rau pem hauv ntej kom rov qab pib dua lwm lub sijhawm? Ntxiv rau, peb tseem muaj cov khoom lag luam ntawm WAL.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Kuv rov pib dua Patroni, ua ob peb qhov chaw kuaj xyuas ntawm tus tswv, ob peb lub ntsiab lus rov pib dua ntawm qhov rov ua dua thaum nws qhib. Thiab nws pab. Kuv xav ntev heev vim li cas nws pab thiab nws ua haujlwm li cas. Thiab lub replica pib. Thiab replication twb tsis torn lawm.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Qhov teeb meem zoo li no rau kuv yog ib qho ntawm ntau qhov tsis meej, dhau qhov uas kuv tseem puzzle tshaj qhov tshwm sim tiag tiag nyob ntawd.

Dab tsi yog qhov cuam tshuam ntawm no? Patroni tuaj yeem ua haujlwm raws li qhov xav tau thiab tsis muaj qhov yuam kev. Tab sis tib lub sijhawm, qhov no tsis yog 100% lav tias txhua yam zoo nrog peb. Lub replica yuav pib, tab sis nws yuav nyob rau hauv ib tug semi-ua hauj lwm lub xeev, thiab daim ntawv thov yuav tsis ua hauj lwm nrog xws li ib tug replica, vim hais tias yuav muaj cov ntaub ntawv qub.

Thiab tom qab lub filer, koj ib txwm yuav tsum tau kuaj xyuas tias txhua yam nyob rau hauv kev txiav txim nrog pawg, uas yog, yuav tsum muaj tus naj npawb ntawm replicas, tsis muaj replication lag.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thiab thaum peb dhau los ntawm cov teeb meem no, kuv yuav ua cov lus pom zoo. Kuv sim muab lawv ua ob daim slides. Tej zaum, tag nrho cov dab neeg tuaj yeem muab tso ua ke rau hauv ob qhov slides thiab tsuas yog qhia.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Thaum koj siv Patroni, koj yuav tsum muaj kev saib xyuas. Koj yuav tsum nco ntsoov paub thaum muaj autofileover tshwm sim, vim tias yog tias koj tsis paub tias koj muaj autofileover, koj tsis muaj kev tswj hwm ntawm pawg. Thiab qhov phem.

Tom qab txhua tus filer, peb ib txwm yuav tsum manually xyuas cov pawg. Peb yuav tsum ua kom paub tseeb tias peb ib txwm muaj tus lej hloov tshiab, tsis muaj qhov rov ua dua tshiab, tsis muaj qhov yuam kev hauv cov cav uas cuam tshuam txog kev sib pauv streaming, nrog Patroni, nrog rau DCS system.

Automation tuaj yeem ua haujlwm tau zoo, Patroni yog lub cuab yeej zoo heev. Nws tuaj yeem ua haujlwm, tab sis qhov no yuav tsis coj cov pawg mus rau lub xeev xav tau. Thiab yog tias peb tsis paub txog nws, peb yuav muaj teeb meem.

Thiab Patroni tsis yog ib lub mos txwv nyiaj. Peb tseem yuav tsum nkag siab tias Postgres ua haujlwm li cas, kev rov ua haujlwm li cas thiab Patroni ua haujlwm li cas nrog Postgres, thiab kev sib txuas lus ntawm cov nodes li cas. Qhov no yog qhov tsim nyog txhawm rau txhawm rau txhim kho cov teeb meem nrog koj txhais tes.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Kuv yuav ua li cas mus txog qhov teeb meem ntawm kev kuaj mob? Nws thiaj li tshwm sim tias peb ua haujlwm nrog cov neeg siv khoom sib txawv thiab tsis muaj leej twg muaj ELK pawg, thiab peb yuav tsum txheeb tawm cov cav los ntawm qhib 6 consoles thiab 2 tabs. Hauv ib lub tab, cov no yog Patroni cav rau txhua qhov, hauv lwm tab, cov no yog Consul cav, lossis Postgres yog tias tsim nyog. Nws yog qhov nyuaj heev los kuaj qhov no.

Kuv tau tsim txoj hauv kev twg? Ua ntej, kuv ib txwm saib thaum lub filer tuaj txog. Thiab rau kuv qhov no yog lub pas dej. Kuv saib dab tsi tshwm sim ua ntej lub filer, thaum lub sij hawm filer thiab tom qab filer. Lub fileover muaj ob lub cim: qhov no yog lub sijhawm pib thiab xaus.

Tom ntej no, kuv saib hauv cov cav rau cov xwm txheej ua ntej tus filer, uas ua ntej tus filer, i.e. Kuv nrhiav cov laj thawj vim li cas tus filer tshwm sim.

Thiab qhov no muab ib daim duab ntawm kev nkag siab txog dab tsi tshwm sim thiab yuav ua li cas rau yav tom ntej kom tsis txhob muaj xwm txheej zoo li no (thiab vim li ntawd, tsis muaj ntaub ntawv).

Thiab qhov twg peb feem ntau saib? kuv saib:

  • Ua ntej, mus rau Patroni cav.
  • Tom ntej no, kuv saib Postgres cav, los yog DCS cav, nyob ntawm seb muaj dab tsi pom nyob rau hauv Patroni cav.
  • Thiab lub kaw lus kaw kuj qee zaum muab kev nkag siab txog dab tsi ua rau tus filer.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Kuv xav li cas txog Patroni? Kuv muaj kev sib raug zoo heev nrog Patroni. Hauv kuv lub tswv yim, qhov no yog qhov zoo tshaj plaws muaj hnub no. Kuv paub ntau lwm yam khoom. Cov no yog Stolon, Repmgr, Pg_auto_failover, PAF. 4 cov cuab yeej. Kuv sim lawv tag nrho. Patroni yog qhov kuv nyiam.

Yog hais tias lawv nug kuv: "Kuv puas xav Patroni?". Kuv yuav hais tau, vim kuv nyiam Patroni. Thiab kuv xav tias kuv kawm yuav ua li cas ua noj.

Yog tias koj xav pom dab tsi lwm yam teeb meem muaj nrog Patroni dua li cov teeb meem kuv tau hais, koj tuaj yeem tshawb xyuas nplooj ntawv ib txwm teeb meem ntawm GitHub. Muaj ntau ntau zaj dab neeg sib txawv thiab ntau yam teeb meem nthuav tau tham nyob ntawd. Thiab yog li ntawd, qee cov kab laum tau qhia thiab daws tau, uas yog, qhov no yog qhov nyeem tau nthuav.

Muaj qee cov dab neeg nthuav txog cov neeg tua lawv tus kheej hauv ko taw. Qhia paub heev. Koj nyeem thiab nkag siab tias tsis tsim nyog ua li ntawd. Kuv zuam kuv tus kheej.

Thiab kuv xav hais tias ua tsaug ntau rau Zalando rau kev tsim txoj haujlwm no, uas yog rau Alexander Kukushkin thiab Alexey Klyukin. Aleksey Klyukin yog ib tus kws sau ntawv, nws tsis ua haujlwm ntawm Zalando lawm, tab sis cov no yog ob tus neeg uas pib ua haujlwm nrog cov khoom no.

Thiab kuv xav tias Patroni yog qhov zoo heev. Kuv zoo siab tias nws muaj, nws nthuav nrog nws. Thiab ua tsaug ntau rau txhua tus neeg koom nrog uas sau thaj ua rau thaj rau Patroni. Kuv vam tias Patroni yuav dhau los ua neeg paub tab, txias thiab muaj txiaj ntsig nrog lub hnub nyoog. Nws twb ua haujlwm tau lawm, tab sis kuv vam tias nws yuav zoo dua. Yog li ntawd, yog tias koj npaj yuav siv Patroni, ces tsis txhob ntshai. Qhov no yog ib qho kev daws teeb meem zoo, nws tuaj yeem siv tau thiab siv tau.

Yog tag nrho. Yog koj muaj lus nug, nug.

Patroni Failure Stories lossis Yuav ua li cas tsoo koj PostgreSQL pawg. Alexey Lesovsky

Lus nug

Ua tsaug rau daim ntawv qhia! Yog tias tom qab ib daim ntawv thov koj tseem yuav tsum tau saib kom zoo zoo, yog vim li cas peb thiaj li xav tau cov ntaub ntawv tsis siv neeg?

Vim nws yog khoom tshiab. Peb tsuas yog nrog nws tau ib xyoos xwb. Zoo dua kom muaj kev nyab xeeb. Peb xav tuaj rau hauv thiab pom tias txhua yam ua haujlwm tiag tiag raws li nws yuav tsum tau ua. Qhov no yog theem ntawm cov neeg laus tsis ntseeg - nws yog qhov zoo dua los kuaj xyuas thiab pom.

Piv txwv li, peb mus thaum sawv ntxov thiab saib, puas yog?

Tsis yog thaum sawv ntxov, peb feem ntau kawm txog autofile yuav luag tam sim ntawd. Peb tau txais kev ceeb toom, peb pom tias muaj autofile tau tshwm sim. Peb yuav luag tam sim ntawd mus saib. Tab sis tag nrho cov kev txheeb xyuas no yuav tsum tau coj mus rau qib saib xyuas. Yog tias koj nkag mus rau Patroni ntawm REST API, muaj keeb kwm. Los ntawm keeb kwm koj tuaj yeem pom cov ntawv teev sijhawm thaum tus filer tshwm sim. Raws li qhov no, kev soj ntsuam tuaj yeem ua tiav. Koj tuaj yeem pom keeb kwm, muaj pes tsawg lub sijhawm nyob ntawd. Yog tias peb muaj ntau yam xwm txheej, ces qhov autofile tau tshwm sim. Koj mus saib tau. Los yog peb saib xyuas automation tau kuaj xyuas tias peb muaj tag nrho cov replicas nyob rau hauv qhov chaw, tsis muaj lag thiab txhua yam zoo.

Ua tsaug!

Ua tsaug ntau rau zaj dab neeg zoo! Yog tias peb tau txav DCS pawg rau qhov chaw deb ntawm Postgres pawg, ces pawg no kuj yuav tsum tau muab kev pabcuam raws sijhawm? Dab tsi yog cov kev coj ua zoo tshaj plaws uas qee qhov ntawm DCS pawg yuav tsum tau muab tua, ib yam dab tsi ua nrog lawv, thiab lwm yam? Yuav ua li cas tag nrho cov qauv no ciaj sia? Thiab koj ua li cas cov no?

Rau ib lub tuam txhab, nws yog tsim nyog los ua ib tug matrix ntawm cov teeb meem, yuav ua li cas tshwm sim yog ib tug ntawm cov Cheebtsam los yog ob peb yam tsis ua hauj lwm. Raws li cov matrix no, peb txuas ntxiv mus los ntawm tag nrho cov khoom thiab tsim cov xwm txheej nyob rau hauv rooj plaub ntawm kev ua tsis tiav ntawm cov khoom no. Raws li, rau txhua qhov xwm txheej tsis ua haujlwm, koj tuaj yeem muaj txoj kev npaj ua kom rov qab los. Thiab nyob rau hauv rooj plaub ntawm DCS, nws los ua ib feem ntawm cov txheej txheem kev tsim kho. Thiab tus thawj tswj hwm nws, thiab peb twb tso siab rau admins uas tswj hwm nws thiab lawv lub peev xwm los kho nws thaum muaj xwm txheej. Yog tias tsis muaj DCS tag nrho, ces peb xa nws, tab sis tib lub sijhawm peb tsis saib xyuas nws tshwj xeeb, vim tias peb tsis muaj lub luag haujlwm rau kev tsim kho vaj tse, tab sis peb muab cov lus pom zoo txog yuav ua li cas thiab saib xyuas dab tsi.

Qhov ntawd yog, kuv puas tau nkag siab qhov tseeb tias kuv yuav tsum tau lov tes taw Patroni, lov tes taw filer, lov tes taw txhua yam ua ntej ua dab tsi nrog cov tswv?

Nws nyob ntawm seb peb muaj pes tsawg leeg hauv DCS pawg. Yog tias muaj ntau cov nodes thiab yog tias peb lov tes taw tsuas yog ib qho ntawm cov nodes (tus qauv), ces pawg tswj hwm pawg. Thiab Patroni tseem ua haujlwm. Thiab tsis muaj dab tsi tshwm sim. Yog tias peb muaj qee qhov kev ua haujlwm nyuaj uas cuam tshuam ntau cov nodes, qhov tsis tuaj yeem ua rau pawg pawg, ces - yog, nws yuav ua rau kev txiav txim siab tso Patroni rau ncua. Nws muaj cov lus txib sib xws - patronictl pause, patronictl rov pib dua. Peb cia li nres thiab lub autofiler tsis ua haujlwm thaum ntawd. Peb ua txij nkawm ntawm DCS pawg, tom qab ntawd peb tshem tawm qhov ncua thiab ua neej nyob mus ntxiv.

Ua tsaug ntau!

Ua tsaug ntau rau koj daim ntawv qhia! Pab pawg khoom xav li cas txog cov ntaub ntawv ploj?

Pab pawg khoom tsis saib xyuas, thiab pab pawg ua haujlwm txhawj xeeb.

Muaj kev lav phib xaub dab tsi?

Guarantees nyuaj heev. Alexander Kukushkin muaj ib daim ntawv qhia "Yuav ua li cas xam RPO thiab RTO", piv txwv li lub sij hawm rov qab thiab ntau npaum li cas cov ntaub ntawv peb yuav poob. Kuv xav tias peb yuav tsum nrhiav cov slides no thiab kawm lawv. Raws li kuv nco qab, muaj cov kauj ruam tshwj xeeb ntawm kev suav cov khoom no. Muaj pes tsawg qhov kev lag luam peb tuaj yeem poob, cov ntaub ntawv ntau npaum li cas peb tuaj yeem poob. Raws li kev xaiv, peb tuaj yeem siv synchronous replication ntawm Patroni qib, tab sis qhov no yog ob-edged ntaj: peb muaj cov ntaub ntawv kev ntseeg siab, lossis peb poob nrawm. Muaj synchronous replication, tab sis nws kuj tsis lav 100% tiv thaiv cov ntaub ntawv poob.

Alexey, ua tsaug rau daim ntawv qhia zoo! Puas muaj kev paub txog kev siv Patroni rau kev tiv thaiv qib xoom? Qhov ntawd yog, ua ke nrog synchronous standby? Nov yog thawj lo lus nug. Thiab lo lus nug thib ob. Koj tau siv cov kev daws teeb meem sib txawv. Peb siv Repmgr, tab sis tsis muaj autofiler, thiab tam sim no peb npaj yuav suav nrog autofiler. Thiab peb xav txog Patroni yog lwm txoj kev daws teeb meem. Koj tuaj yeem hais dab tsi raws li qhov zoo piv rau Repmgr?

Thawj lo lus nug yog hais txog synchronous replicas. Tsis muaj leej twg siv synchronous replication ntawm no, vim hais tias txhua leej txhua tus ntshai (Ntau tus neeg tau siv nws, hauv txoj cai, lawv tsis pom muaj teeb meem kev ua haujlwm - Tus neeg hais lus ceeb toom). Tab sis peb tau tsim ib txoj cai rau peb tus kheej tias yuav tsum muaj tsawg kawg yog peb lub pob nyob rau hauv ib qho synchronous replication pawg, vim hais tias yog peb muaj ob lub nodes thiab yog tus tswv los yog replica ua tsis tau, ces Patroni hloov node rau Standalone hom kom daim ntawv thov mus ntxiv. ua haujlwm. Hauv qhov no, muaj kev pheej hmoo ntawm cov ntaub ntawv poob.

Hais txog lo lus nug thib ob, peb tau siv Repmgr thiab tseem ua nrog qee tus neeg siv khoom vim li cas keeb kwm. Yuav hais li cas? Patroni los nrog autofiler tawm ntawm lub thawv, Repmgr los nrog autofiler ua ib qho ntxiv uas yuav tsum tau ua. Peb yuav tsum tau khiav lub Repmgr daemon ntawm txhua qhov thiab tom qab ntawd peb tuaj yeem teeb tsa lub autofiler.

Repmgr kuaj xyuas yog tias Postgres nodes muaj sia nyob. Cov txheej txheem Repmgr txheeb xyuas qhov muaj nyob ntawm ib leeg, qhov no tsis yog qhov ua tau zoo heev. tuaj yeem muaj cov xwm txheej nyuaj ntawm kev sib cais hauv lub network uas ib pawg Repmgr loj tuaj yeem sib cais mus rau ntau qhov me me thiab txuas ntxiv ua haujlwm. Kuv tsis tau ua raws Repmgr tau ntev, tej zaum nws tau kho ... lossis tej zaum tsis yog. Tab sis kev tshem tawm cov ntaub ntawv hais txog lub xeev ntawm pawg hauv DCS, raws li Stolon, Patroni ua, yog qhov kev xaiv zoo tshaj plaws.

Alexey, kuv muaj lus nug, tej zaum ib tug lamer ib. Hauv ib qho piv txwv thawj, koj tau tsiv DCS los ntawm lub tshuab hauv zos mus rau lub chaw tswj hwm chaw taws teeb. Peb nkag siab tias lub network yog ib yam khoom uas muaj nws tus yam ntxwv, nws nyob ntawm nws tus kheej. Thiab yuav ua li cas yog tias vim li cas DCS pawg tsis muaj? Kuv yuav tsis hais cov laj thawj, tuaj yeem muaj ntau yam ntawm lawv: los ntawm cov neeg siv tes sib txuas mus rau cov teeb meem tiag tiag.

Kuv tsis tau hais kom nrov nrov, tab sis pawg DCS kuj yuav tsum ua tsis tiav, piv txwv li nws yog ib qho khib ntawm cov nodes, txhawm rau kom muaj pawg sib ntsib. Yuav ua li cas yog tias pawg DCS ua tsis muaj, lossis pawg pawg tsis tuaj yeem ntsib, piv txwv li qee yam kev sib cais hauv lub network lossis cov node tsis ua haujlwm? Hauv qhov no, Patroni pawg nkag mus rau hauv hom nyeem nkaus xwb. Pawg Patroni tsis tuaj yeem txiav txim siab lub xeev ntawm pawg thiab yuav ua li cas. Nws tsis tuaj yeem tiv tauj DCS thiab khaws lub xeev pawg tshiab nyob ntawd, yog li tag nrho pawg nkag mus rau hauv kev nyeem nkaus xwb. Thiab tos ib qho kev cuam tshuam los ntawm tus neeg teb xov tooj lossis rau DCS kom rov zoo.

Hais lus ntxhib, DCS dhau los ua kev pabcuam rau peb tseem ceeb npaum li lub hauv paus nws tus kheej?

Yog lawm. Hauv ntau lub tuam txhab niaj hnub no, Service Discovery yog ib feem tseem ceeb ntawm kev tsim kho vaj tse. Nws tau raug siv txawm tias ua ntej muaj txawm tias muaj cov ntaub ntawv hauv cov txheej txheem. Hais txog hais lus, cov kev tsim kho vaj tse tau pib, xa mus rau hauv DC, thiab peb tam sim ntawd muaj Kev Pabcuam Discovery. Yog tias nws yog Consul, ces DNS tuaj yeem tsim rau ntawm nws. Yog tias qhov no yog Etcd, ces tej zaum yuav muaj ib feem ntawm Kubernetes pawg, uas txhua yam yuav raug xa mus. Nws zoo nkaus li kuv tias Service Discovery twb yog ib feem tseem ceeb ntawm cov txheej txheem niaj hnub no. Thiab lawv xav txog nws ntau dua li ntawm cov ntaub ntawv.

Ua tsaug!

Tau qhov twg los: www.hab.com

Ntxiv ib saib