Nkag siab cov lus brokers. Kawm cov tshuab ntawm kev xa xov nrog ActiveMQ thiab Kafka. Tshooj 1

Nyob zoo txhua leej txhua tus!

Kuv pib txhais ib phau ntawv me me:
Β«Nkag siab Cov Lus Qhia Brokers",
sau: Jakub Korab, Publisher: O'Reilly Media, Inc., Hnub tim luam tawm: Lub Rau Hli 2017, ISBN: 9781492049296.

Los ntawm kev taw qhia rau phau ntawv:
"... Phau ntawv no yuav qhia koj yuav ua li cas xav txog tus broker messaging systems, sib piv thiab sib piv ob lub npe nrov broker technologies: Apache ActiveMQ thiab Apache Kafka. Nws yuav piav qhia txog cov xwm txheej siv thiab kev txhawb nqa kev loj hlob uas ua rau lawv cov neeg tsim khoom siv ntau txoj hauv kev rau tib thaj chaw - kev xa xov ntawm cov kab ke nrog tus neeg ua haujlwm nruab nrab. Peb mam li saib cov thev naus laus zis los ntawm hauv av thiab qhia txog qhov cuam tshuam ntawm ntau yam kev xaiv tsim raws txoj kev. Koj yuav tau txais kev nkag siab tob ntawm ob yam khoom, kev nkag siab txog yuav ua li cas lawv yuav tsum tau thiab yuav tsum tsis txhob siv, thiab kev nkag siab txog yam yuav tsum tau nrhiav thaum xav txog lwm yam kev xa xov yav tom ntej ... "

Cov ntawv txhais kom deb li deb:
Tshooj 1. Kev Taw Qhia
Tshooj 3. Kafka

Kuv yuav tso tshooj ua tiav raws li lawv tau muab txhais.

Tshooj 1

Taw qhia

System-to-system messaging yog ib qho ntawm cov kev nkag siab tsawg tshaj plaws ntawm IT. Raws li tus tsim tawm lossis tus kws tsim qauv, koj yuav paub zoo txog ntau yam kev ua haujlwm thiab cov ntaub ntawv. Txawm li cas los xij, nws zoo li tias koj tsuas muaj kev paub dhau los ntawm kev ua haujlwm ntawm kev xa xov technologies ua haujlwm li cas. Yog tias koj xav li no, tsis txhob txhawj, koj nyob hauv lub tuam txhab zoo.

Cov tib neeg feem ntau muaj kev sib cuag tsawg heev nrog rau kev xa xov. Lawv feem ntau txuas mus rau lub kaw lus tsim ib lub sij hawm ntev dhau los, los yog rub tawm ib qho kev faib tawm hauv Is Taws Nem, nruab rau hauv PROM thiab pib sau cov lej rau nws. Tom qab khiav cov txheej txheem hauv PROM, cov txiaj ntsig tuaj yeem sib xyaw: cov lus poob vim qhov ua tsis tiav, xa tsis ua haujlwm raws li koj xav tau, lossis cov tuam txhab "dai" koj cov neeg tsim khoom lossis tsis xa cov lus rau koj cov neeg siv khoom.

Suab paub?

Ib qho xwm txheej zoo sib xws yog qhov uas koj qhov kev xa xov code ua haujlwm zoo, rau lub sijhawm. Txog thaum nws tsis ua haujlwm. Lub sijhawm no lulls ib tus neeg saib xyuas mus rau qhov tsis tseeb ntawm kev ruaj ntseg, ua rau ntau txoj cai raws li kev ntseeg cuav txog tus cwj pwm tseem ceeb ntawm kev siv tshuab. Thaum txhua yam pib mus tsis ncaj ncees lawm, koj tau ntsib nrog qhov tseeb tsis yooj yim: tias koj tsis tau nkag siab tiag tiag tus cwj pwm ntawm cov khoom lossis kev lag luam uas tau xaiv los ntawm cov kws sau ntawv, xws li kev ua tau zoo tiv thaiv kev ntseeg tau, lossis kev lag luam tawm tsam kab rov tav scalability .

Yog tsis muaj kev nkag siab tob txog kev ua haujlwm ntawm cov neeg ua haujlwm, tib neeg ua cov lus hais txog lawv cov kev xa xov, xws li:

  • Lub kaw lus yuav tsis poob lus
  • Cov lus yuav raug ua tiav
  • Ntxiv cov neeg siv khoom yuav ua rau lub kaw lus nrawm dua
  • Cov lus tsuas yog xa tuaj ib zaug xwb

Hmoov tsis zoo, qee qhov ntawm cov nqe lus no yog ua raws li cov kev xav uas tsuas yog siv raws li qee qhov xwm txheej, thaum lwm tus tsuas yog tsis raug.

Phau ntawv no yuav qhia koj yuav ua li cas xav txog tus broker-based messaging systems, sib piv thiab sib piv ob lub npe nrov broker technologies: Apache ActiveMQ thiab Apache Kafka. Nws yuav piav qhia txog cov xwm txheej siv thiab kev txhawb nqa kev loj hlob uas ua rau lawv cov neeg tsim khoom siv ntau txoj hauv kev rau tib thaj chaw - kev xa xov ntawm cov kab ke nrog tus neeg ua haujlwm nruab nrab. Peb mam li saib cov thev naus laus zis los ntawm hauv av thiab qhia txog qhov cuam tshuam ntawm ntau yam kev xaiv tsim raws txoj kev. Koj yuav tau txais kev nkag siab tob ntawm ob yam khoom, kev nkag siab txog yuav ua li cas lawv yuav tsum tau siv thiab yuav tsum tsis txhob siv, thiab kev nkag siab txog yam yuav tsum tau nrhiav thaum xav txog lwm yam kev xa xov yav tom ntej.

Ua ntej peb pib, cia peb mus dhau lub hauv paus.

Dab tsi yog Messaging System thiab vim li cas thiaj xav tau?

Txhawm rau kom ob daim ntawv thov sib txuas lus nrog ib leeg, lawv yuav tsum xub txhais lub interface. Txhais qhov kev sib tshuam no suav nrog xaiv kev thauj lossis raws tu qauv, xws li HTTP, MQTT, lossis SMTP, thiab sib tham txog cov lus tawm tswv yim uas yuav sib pauv ntawm cov tshuab. Qhov no tej zaum yuav yog ib qho txheej txheem nruj, xws li kev txhais ib qho XML schema nrog cov lus them nqi yuav tsum tau ua, los yog nws yuav tsis raug cai, xws li kev pom zoo ntawm ob tus neeg tsim khoom uas qee feem ntawm HTTP thov yuav muaj tus neeg siv tus cim.

Ntev npaum li cov hom ntawv thiab qhov kev txiav txim uas lawv raug xa mus zoo ib yam ntawm cov tshuab, lawv tuaj yeem sib txuas lus nrog ib leeg yam tsis muaj kev txhawj xeeb txog lwm qhov kev siv. Cov sab hauv ntawm cov tshuab no, xws li cov lus programming lossis lub moj khaum siv, tuaj yeem hloov pauv raws sijhawm. Ntev npaum li daim ntawv cog lus nws tus kheej khaws cia, kev sib cuam tshuam tuaj yeem txuas ntxiv yam tsis muaj kev hloov pauv ntawm lwm sab. Ob lub tshuab tau zoo decoupled (sib cais) los ntawm no interface.

Kev xa xov yog feem ntau koom nrog tus neeg nruab nrab ntawm ob lub tshuab uas cuam tshuam rau ntxiv decouple (sib cais) tus xa los ntawm tus neeg txais lossis cov neeg txais. Hauv qhov no, lub tshuab xa xov tso cai rau tus neeg xa xov xa xov tsis paub tias tus neeg txais yuav nyob qhov twg, txawm tias nws ua haujlwm, lossis muaj pes tsawg zaus.

Cia peb saib ob peb qhov piv txwv rau hom teeb meem uas kev xa xov daws teeb meem thiab qhia qee cov ntsiab lus yooj yim.

Taw-rau-Taw

Alexandra mus rau lub chaw xa ntawv xa Adam ib pob. Nws mus rau ntawm qhov rais thiab muab cov neeg ua haujlwm rau lub pob. Tus neeg ua haujlwm khaws lub pob thiab muab Alexandra ib daim ntawv txais nyiaj. Adas tsis tas yuav nyob hauv tsev thaum lub pob xa tuaj. Alexandra ntseeg siab tias lub pob yuav raug xa mus rau Adas ntawm qee lub sijhawm yav tom ntej thiab tuaj yeem txuas ntxiv mus txog nws txoj kev lag luam. Tom qab ntawd Adas tau txais ib pob.

Qhov no yog ib qho piv txwv ntawm kev xa ntawv qauv taw tes rau taw tes. Lub chaw xa ntawv ntawm no ua raws li cov txheej txheem xa khoom xa tuaj, kom ntseeg tau tias txhua pob khoom xa tuaj ib zaug. Kev siv lub chaw xa ntawv cais qhov kev ua ntawm xa ib pob los ntawm kev xa cov pob.
Nyob rau hauv classic messaging systems, tus qauv taw tes rau-point yog siv los ntawm kab. Cov kab ua haujlwm raws li FIFO (thawj hauv, ua ntej tawm) tsis tuaj yeem tso npe los ntawm ib lossis ntau tus neeg siv khoom. Txhua cov lus tsuas yog xa tawm xwb rau ib qho ntawm cov neeg tau txais kev pab. Queues feem ntau sim faib cov lus ncaj ncees ntawm cov neeg siv khoom. Tsuas yog ib tus neeg siv khoom yuav tau txais cov lus no.

Lo lus "durable" yog siv rau cov kab. Kev ntseeg tau yog cov cuab yeej pabcuam uas ua kom ntseeg tau tias kev xa xov yuav txuas ntxiv cov lus thaum tsis muaj cov neeg siv khoom nquag kom txog rau thaum tus neeg siv khoom tau sau npe rau kab ntawv xa xov.

Kev ntseeg tau feem ntau tsis meej pem nrog kev nyob ruaj khov thiab txawm hais tias ob lo lus siv sib hloov, lawv ua haujlwm sib txawv. Kev ua siab ntev txiav txim siab seb qhov kev xa xov puas sau cov lus rau qee yam kev khaws cia ntawm qhov tau txais thiab xa mus rau cov neeg siv khoom. Cov lus xa mus rau cov kab yuav los yog tsis tuaj yeem ua tsis tu ncua.
Point-to-point messaging yog siv thaum cov ntaub ntawv siv yuav tsum tau ua ib zaug ntawm cov lus. Piv txwv xws li tso nyiaj rau hauv tus account lossis ua tiav daim ntawv xaj khoom xa tuaj. Peb mam li sib tham tom qab vim li cas qhov kev xa xov ntawm nws tus kheej tsis tuaj yeem muab kev xa khoom ib zaug thiab vim li cas cov kab tuaj yeem muab kev lav zoo tshaj plaws tsawg kawg ib zaug.

Publisher-Subscriber

Gabriella hu xov tooj rau lub rooj sib tham. Thaum nws txuas nrog lub rooj sib tham, nws hnov ​​​​txhua yam uas tus neeg hais lus hais, nrog rau cov neeg tuaj koom hu. Thaum nws tig tawm, nws nco cov lus hais. Thaum rov txuas dua, nws tseem hnov ​​​​cov lus hais.

Qhov no yog ib qho piv txwv ntawm kev xa ntawv qauv publish-subscribe. Kev hu xovtooj sablaj ua raws li kev tshaj tawm xov xwm. Tus neeg hais lus tsis quav ntsej txog pes tsawg tus neeg tam sim no hu - lub kaw lus kom ntseeg tau tias leej twg txuas nrog tam sim no yuav hnov ​​​​cov lus hais.
Nyob rau hauv classic messaging systems, lub publish-subscribe messaging qauv yog siv los ntawm saum. Lub ntsiab lus muab tib txoj kev tshaj tawm raws li lub rooj sib tham mechanism. Thaum cov lus raug xa mus rau ib lub ncauj lus, nws raug faib rau txhua tus neeg siv tau txais kev pab.

Cov ncauj lus feem ntau yog unreliable (tsis tuaj yeem). Ib yam li tus neeg mloog uas tsis tuaj yeem hnov ​​​​cov lus hais hauv lub rooj sib tham hu thaum tus neeg mloog tsis sib txuas, cov npe cov npe tsis nco cov lus uas tau xa thaum lawv offline. Vim li no, peb tuaj yeem hais tias cov ncauj lus muab kev lees paub xa khoom tsis ntau tshaj ib zaug rau txhua tus neeg siv khoom.

Publish-subscribe messaging feem ntau yog siv thaum cov lus yog cov ntaub ntawv nyob rau hauv cov xwm thiab qhov poob ntawm ib cov lus tsis tseem ceeb tshwj xeeb. Piv txwv li, ib lub ntsiab lus tuaj yeem xa cov ntsuas kub los ntawm ib pawg ntawm cov sensors ib zaug ib ob. Lub kaw lus uas txaus siab rau qhov kub thiab txias tam sim no thiab cov npe rau ib lub ntsiab lus yuav tsis txhawj xeeb yog tias nws tsis nco cov lus - lwm qhov yuav tuaj txog yav tom ntej.

hybrid qauv

Lub khw lub vev xaib muab cov lus xaj hauv "cov lus queue." Cov neeg siv khoom tseem ceeb ntawm cov lus no yog kev tswj hwm. Tsis tas li ntawd, qhov kev tshuaj xyuas yuav tsum muaj cov ntawv luam ntawm cov lus txiav txim rau kev taug qab tom ntej. Ob lub tshuab tsis tuaj yeem tso cai rau cov lus hla mus, txawm tias lub tshuab lawv tus kheej tsis muaj nyob rau qee lub sijhawm. Lub vev xaib yuav tsum tsis txhob paub txog lwm cov kab ke.

Kev siv cov xwm txheej feem ntau xav tau kev sib txuas ntawm kev tshaj tawm-sau npe thiab cov qauv xa mus rau qhov taw tes, xws li thaum ntau lub tshuab xav tau cov ntawv luam thiab ob qho tib si kev ntseeg siab thiab kev pheej hmoo yuav tsum tau tiv thaiv cov lus poob.

Cov rooj plaub no yuav tsum muaj lub hom phiaj (ib lub ntsiab lus dav dav rau cov kab thiab cov ncauj lus) uas faib cov lus hauv ib lub ntsiab lus, kom txhua cov lus raug xa mus rau ib qho kev sib cais uas nyiam cov lus, tab sis kuj nyob rau hauv uas txhua lub kaw lus tuaj yeem txhais tau ntau tus neeg siv khoom uas tau txais khoom. lus, uas zoo li ib tug queue. Hom kev nyeem ntawv hauv qhov no yog ib zaug rau txhua tus neeg koom nrog. Cov chaw hybrid no feem ntau xav tau kev ua haujlwm ntev kom yog tias tus neeg siv khoom mus offline, cov lus xa tuaj rau lub sijhawm ntawd tau txais tom qab cov neeg siv khoom sib txuas.

Cov qauv hybrid tsis yog tshiab thiab tuaj yeem siv rau hauv kev xa xov feem ntau, suav nrog ob qho tib si ActiveMQ (ntawm cov chaw virtual lossis cov chaw sib xyaw ua ke uas sib xyaw cov ntsiab lus thiab cov kab) thiab Kafka (qhov tseeb, raws li cov cuab yeej tseem ceeb ntawm nws qhov chaw tsim qauv).

Tam sim no peb muaj qee cov ntsiab lus yooj yim thiab kev nkag siab ntawm qhov peb tuaj yeem siv cov lus xa mus rau, cia peb mus rau cov ntsiab lus.

Txhais ua tiav: tele.gg/middle_java

Cov lus txhais hauv qab no: Tshooj 3. Kafka

Kom txuas ntxiv…

Tau qhov twg los: www.hab.com

Ntxiv ib saib