{"id":38171,"date":"2019-10-31T22:22:03","date_gmt":"2019-10-31T19:22:03","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ponimanie-brokerov-soobshhenij-izuchenie-mehaniki-obmena-soobshheniyami-posredstvom-activemq-i-kafka-glava-1\/"},"modified":"2019-10-31T22:22:03","modified_gmt":"2019-10-31T19:22:03","slug":"ponimanie-brokerov-soobshhenij-izuchenie-mehaniki-obmena-soobshheniyami-posredstvom-activemq-i-kafka-glava-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/ponimanie-brokerov-soobshhenij-izuchenie-mehaniki-obmena-soobshheniyami-posredstvom-activemq-i-kafka-glava-1","title":{"rendered":"Porozum\u011bn\u00ed zprost\u0159edkovatel\u016fm zpr\u00e1v. Studium mechaniky v\u00fdm\u011bny zpr\u00e1v prost\u0159ednictv\u00edm ActiveMQ a Kafka. Kapitola 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ahoj v\u0161ichni!<\/p>\n<p>Zah\u00e1jil jsem p\u0159eklad mal\u00e9 knihy:<br \/>\n\u201e<b><noindex><a rel=\"nofollow\" href=\"https:\/\/www.oreilly.com\/library\/view\/understanding-message-brokers\/9781492049296\/\">Porozum\u011bn\u00ed zpr\u00e1vov\u00fdm broker\u016fm<\/a><\/noindex><\/b>\u201e <br \/>\nautor: Jakub Korab, nakladatelstv\u00ed: O'Reilly Media, Inc., datum vyd\u00e1n\u00ed: \u010derven 2017, ISBN: 9781492049296.<\/p>\n<p>Z \u00favodu knihy:<br \/>\n\u201e\u2026 <i>Tato kniha v\u00e1s nau\u010d\u00ed p\u0159em\u00fd\u0161let o syst\u00e9mech pro v\u00fdm\u011bnu zpr\u00e1v pomoc\u00ed broker\u016f, p\u0159i\u010dem\u017e porovn\u00e1 a kontrastuje dv\u011b popul\u00e1rn\u00ed technologie broker\u016f: Apache ActiveMQ a Apache Kafka. Uvedeny budou p\u0159\u00edklady pou\u017eit\u00ed a podn\u011bty k v\u00fdvoji, kter\u00e9 vedly k tomu, \u017ee jejich v\u00fdvoj\u00e1\u0159i zvolili zcela odli\u0161n\u00e9 p\u0159\u00edstupy k t\u00e9\u017ee problematice \u2013 v\u00fdm\u011bn\u011b zpr\u00e1v mezi syst\u00e9my pomoc\u00ed mezikrokov\u00e9ho brokera. Prozkoum\u00e1me tyto technologie od z\u00e1klad\u016f a vyzdvihneme vliv r\u016fzn\u00fdch designov\u00fdch variant na t\u00e9to cest\u011b. Z\u00edsk\u00e1te hlubok\u00e9 porozum\u011bn\u00ed ob\u011bma produkt\u016fm, v\u011bd\u011bn\u00ed o tom, jak by m\u011bly a nem\u011bly b\u00fdt pou\u017e\u00edv\u00e1ny, a tak\u00e9 ch\u00e1p\u00e1n\u00ed toho, na co byste m\u011bli d\u00e1vat pozor p\u0159i zva\u017eov\u00e1n\u00ed jin\u00fdch technologi\u00ed pro v\u00fdm\u011bnu zpr\u00e1v v budoucnosti.<\/i> \u2026\u201c<\/p>\n<p>P\u0159elo\u017een\u00e9 \u010d\u00e1sti do sou\u010dasn\u00e9 doby:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466385\">Kapitola 1. \u00davod<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466585\">Kapitola 3. Kafka<\/a><\/noindex><\/p>\n<p>Budu zve\u0159ej\u0148ovat hotov\u00e9 kapitoly, jakmile je p\u0159elo\u017e\u00edm.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>KAPITOLA 1<\/h2>\n<p><\/p>\n<h2>\u00davod<\/h2>\n<p>\nMeziz\u00e1vodn\u00ed v\u00fdm\u011bna zpr\u00e1v je jednou z nejm\u00e9n\u011b pochopen\u00fdch oblast\u00ed IT. Jako v\u00fdvoj\u00e1\u0159 nebo architekt m\u016f\u017eete b\u00fdt velmi dob\u0159e obezn\u00e1meni s r\u016fzn\u00fdmi frameworky a datab\u00e1zemi. Je v\u0161ak velmi pravd\u011bpodobn\u00e9, \u017ee m\u00e1te pouze letm\u00e9 pov\u011bdom\u00ed o tom, jak funguj\u00ed technologie v\u00fdm\u011bny zpr\u00e1v zalo\u017een\u00e9 na brokerech. Pokud se tak c\u00edt\u00edte, nebojte se, nejste sami.<\/p>\n<p>Lid\u00e9 obvykle p\u0159ich\u00e1zej\u00ed do kontaktu s infrastrukturou pro v\u00fdm\u011bnu zpr\u00e1v velmi omezen\u011b. \u010casto se p\u0159ipojuj\u00ed k syst\u00e9mu vytvo\u0159en\u00e9mu d\u00e1vno, nebo st\u00e1hnou distribuci z internetu, nainstaluj\u00ed ji do PROMu a za\u010dnou pro ni ps\u00e1t k\u00f3d. Po spu\u0161t\u011bn\u00ed infrastruktury v PROMu mohou b\u00fdt v\u00fdsledky nejasn\u00e9: ztr\u00e1ta zpr\u00e1v b\u011bhem selh\u00e1n\u00ed, odes\u00edl\u00e1n\u00ed nefunguje, jak byste o\u010dek\u00e1vali, nebo brokery \u201evis\u00ed\u201c va\u0161e producenty nebo neodes\u00edlaj\u00ed zpr\u00e1vy va\u0161im spot\u0159ebitel\u016fm.<\/p>\n<p>Zn\u00ed to pov\u011bdom\u011b?<\/p>\n<p>B\u011b\u017en\u00fd sc\u00e9n\u00e1\u0159, kdy v\u00e1\u0161 k\u00f3d pro zpr\u00e1vu funguje skv\u011ble, dokud najednou p\u0159estane. Toto obdob\u00ed usp\u00e1v\u00e1 bd\u011blost a d\u00e1v\u00e1 fale\u0161n\u00fd pocit bezpe\u010d\u00ed, co\u017e vede k je\u0161t\u011b v\u011bt\u0161\u00edmu k\u00f3du zalo\u017een\u00e9mu na myln\u00fdch p\u0159edstav\u00e1ch o z\u00e1kladn\u00edm chov\u00e1n\u00ed technologie. Kdy\u017e se n\u011bco za\u010dne kazit, tv\u00e1\u0159\u00ed v tv\u00e1\u0159 se setk\u00e1v\u00e1te s nep\u0159\u00edjemnou pravdou: \u017ee jste ve skute\u010dnosti po\u0159\u00e1dn\u011b nepochopili z\u00e1kladn\u00ed chov\u00e1n\u00ed produktu nebo kompromisy, kter\u00e9 auto\u0159i u\u010dinili, jako je pom\u011br v\u00fdkonu k spolehlivosti, nebo transak\u010dnost versus horizont\u00e1ln\u00ed \u0161k\u00e1lovatelnost.<\/p>\n<p>Bez hlubok\u00e9ho pochopen\u00ed toho, jak funguj\u00ed brokery, lid\u00e9 d\u011blaj\u00ed na prvn\u00ed pohled rozumn\u00e1 tvrzen\u00ed o jejich syst\u00e9mech zpr\u00e1vy, jako nap\u0159\u00edklad:<\/p>\n<ul>\n<li>Syst\u00e9m nikdy neztrat\u00ed zpr\u00e1vy<\/li>\n<li>Zpr\u00e1vy budou zpracov\u00e1v\u00e1ny sekven\u010dn\u011b<\/li>\n<li>P\u0159id\u00e1n\u00ed konzument\u016f zrychl\u00ed syst\u00e9m<\/li>\n<li>Zpr\u00e1vy budou doru\u010deny pouze jednou<\/li>\n<\/ul>\n<p>\nBohu\u017eel, n\u011bkter\u00e1 z t\u011bchto tvrzen\u00ed jsou zalo\u017eena na p\u0159edpokladech, kter\u00e9 plat\u00ed pouze za ur\u010dit\u00fdch okolnost\u00ed, zat\u00edmco jin\u00e1 jsou jednodu\u0161e nepravdiv\u00e1.<\/p>\n<p>Tato kniha v\u00e1s nau\u010d\u00ed p\u0159em\u00fd\u0161let o syst\u00e9mech zpr\u00e1v zalo\u017een\u00fdch na brokerech porovn\u00e1v\u00e1n\u00edm a kontrastov\u00e1n\u00edm dvou popul\u00e1rn\u00edch brokerov\u00fdch technologi\u00ed: Apache ActiveMQ a Apache Kafka. Budou zde uvedeny p\u0159\u00edklady pou\u017eit\u00ed a motivace k v\u00fdvoji, kter\u00e9 vedly jejich v\u00fdvoj\u00e1\u0159e k pou\u017eit\u00ed zcela odli\u0161n\u00fdch p\u0159\u00edstup\u016f ke stejn\u00e9 oblasti \u2014 v\u00fdm\u011bn\u011b zpr\u00e1v mezi syst\u00e9my s prost\u0159edn\u00edm brokerem. Pod\u00edv\u00e1me se na tyto technologie od z\u00e1klad\u016f a zd\u016frazn\u00edme vliv r\u016fzn\u00fdch n\u00e1vrhov\u00fdch mo\u017enost\u00ed na t\u00e9to cest\u011b. Z\u00edsk\u00e1te hlubok\u00e9 pochopen\u00ed obou produkt\u016f, to, jak by m\u011bly a nem\u011bly b\u00fdt pou\u017e\u00edv\u00e1ny, a pochopen\u00ed toho, na co byste m\u011bli d\u00e1vat pozor p\u0159i zva\u017eov\u00e1n\u00ed jin\u00fdch technologi\u00ed zpr\u00e1v v budoucnu.<\/p>\n<p>Ne\u017e za\u010dneme, projdeme si z\u00e1klady.<\/p>\n<h3>Co je to syst\u00e9m zpr\u00e1v a k \u010demu slou\u017e\u00ed<\/h3>\n<p>\nAby si dv\u011b aplikace mohly vz\u00e1jemn\u011b komunikovat, mus\u00ed nejprve definovat rozhran\u00ed. Definice tohoto rozhran\u00ed zahrnuje v\u00fdb\u011br transportu nebo protokolu, jako je HTTP, MQTT nebo SMTP, a dohodu o form\u00e1tech zpr\u00e1v, kter\u00fdmi si budou syst\u00e9my vym\u011b\u0148ovat. M\u016f\u017ee to b\u00fdt p\u0159\u00edsn\u00fd proces, jako je definice XML sch\u00e9matu s po\u017eadavky na z\u00e1t\u011b\u017e (payload) zpr\u00e1vy, nebo to m\u016f\u017ee b\u00fdt mnohem m\u00e9n\u011b form\u00e1ln\u00ed, nap\u0159\u00edklad dohoda mezi dv\u011bma v\u00fdvoj\u00e1\u0159i, \u017ee ur\u010dit\u00e1 \u010d\u00e1st HTTP po\u017eadavku bude obsahovat identifik\u00e1tor z\u00e1kazn\u00edka.<\/p>\n<p>Jakmile jsou form\u00e1ty zpr\u00e1v a po\u0159ad\u00ed jejich odes\u00edl\u00e1n\u00ed mezi syst\u00e9my dohodnuty, budou moci vz\u00e1jemn\u011b spolupracovat, ani\u017e by se staraly o implementaci druh\u00e9ho syst\u00e9mu. Vnit\u0159nosti t\u011bchto syst\u00e9m\u016f, jako je programovac\u00ed jazyk nebo pou\u017eit\u00fd framework, se mohou v pr\u016fb\u011bhu \u010dasu m\u011bnit. Dokud je zachov\u00e1na samotn\u00e1 smlouva, komunikace m\u016f\u017ee pokra\u010dovat bez zm\u011bny z druh\u00e9 strany. Tyto dva syst\u00e9my jsou t\u00edmto rozhran\u00edm efektivn\u011b odd\u011bleny.<\/p>\n<p>Syst\u00e9my pro v\u00fdm\u011bnu zpr\u00e1v obvykle zahrnuj\u00ed zprost\u0159edkovatele mezi dv\u011bma syst\u00e9my, kter\u00e9 spolupracuj\u00ed, aby d\u00e1le odd\u011blily odes\u00edlatele od p\u0159\u00edjemce nebo p\u0159\u00edjemc\u016f. Syst\u00e9m v\u00fdm\u011bny zpr\u00e1v umo\u017e\u0148uje odes\u00edlateli poslat zpr\u00e1vu, ani\u017e by v\u011bd\u011bl, kde se p\u0159\u00edjemce nach\u00e1z\u00ed, zda je aktivn\u00ed, nebo kolik jeho instanc\u00ed existuje.<\/p>\n<p>Pod\u00edvejme se na p\u00e1r analogi\u00ed r\u016fzn\u00fdch probl\u00e9m\u016f, kter\u00e9 se syst\u00e9m v\u00fdm\u011bny zpr\u00e1v sna\u017e\u00ed vy\u0159e\u0161it, a zav\u00e1d\u011bjme n\u011bkter\u00e9 z\u00e1kladn\u00ed pojmy.<\/p>\n<h4>Point-to-Point<\/h4>\n<p><\/p>\n<blockquote><p>Alexandra jde na po\u0161tu, aby poslala Adamovi bal\u00ed\u010dek. P\u0159istoup\u00ed k ok\u00e9nku a p\u0159ed\u00e1 zam\u011bstnanci bal\u00ed\u010dek. Zam\u011bstnanec si bal\u00ed\u010dek vezme a vyd\u00e1 Alexand\u0159e potvrzen\u00ed. Adam nemus\u00ed b\u00fdt doma v okam\u017eiku odesl\u00e1n\u00ed bal\u00ed\u010dku. Alexandra si je jist\u00e1, \u017ee bal\u00ed\u010dek bude Adamovi doru\u010den v n\u011bjak\u00e9m budouc\u00edm okam\u017eiku a m\u016f\u017ee se i nad\u00e1le v\u011bnovat sv\u00fdm z\u00e1le\u017eitostem. Pozd\u011bji v ur\u010dit\u00e9m okam\u017eiku Adam bal\u00ed\u010dek obdr\u017e\u00ed.<\/p><\/blockquote>\n<p>To je p\u0159\u00edklad modelu v\u00fdm\u011bny zpr\u00e1v <i>point-to-point<\/i>. Po\u0161tovn\u00ed \u00fa\u0159ad zde funguje jako mechanismus distribuce bal\u00ed\u010dk\u016f, zaji\u0161\u0165uj\u00edc\u00ed, \u017ee ka\u017ed\u00fd bal\u00ed\u010dek bude doru\u010den jednou. Pou\u017eit\u00ed po\u0161tovn\u00edho \u00fa\u0159adu odd\u011bluje samotn\u00fd akt odes\u00edl\u00e1n\u00ed bal\u00ed\u010dku od doru\u010den\u00ed bal\u00ed\u010dku.<br \/>\nV klasick\u00fdch syst\u00e9mech v\u00fdm\u011bny zpr\u00e1v je model \u201ebod-bod\u201c realizov\u00e1n prost\u0159ednictv\u00edm <i>\u010dek\u00e1n\u00ed<\/i>. Fronta funguje jako FIFO (prvn\u00ed p\u0159i\u0161el, prvn\u00ed ode\u0161el) vyrovn\u00e1vac\u00ed pam\u011b\u0165, na kterou se m\u016f\u017ee p\u0159ihl\u00e1sit jeden nebo v\u00edce spot\u0159ebitel\u016f. Ka\u017ed\u00e1 zpr\u00e1va je dod\u00e1na pouze <i>jednomu z p\u0159ihl\u00e1\u0161en\u00fdch spot\u0159ebitel\u016f<\/i>. Fronty obvykle usiluj\u00ed o spravedliv\u00e9 rozd\u011blen\u00ed zpr\u00e1v mezi spot\u0159ebiteli. Pouze jeden spot\u0159ebitel obdr\u017e\u00ed danou zpr\u00e1vu.<\/p>\n<p>Na fronty se vztahuje term\u00edn \u201espolehliv\u00e9\u201c (\u201edurable\u201c). <i>Spolehlivost <\/i> \u2014 to je vlastnost slu\u017eby, kter\u00e1 zaru\u010duje, \u017ee syst\u00e9m v\u00fdm\u011bny zpr\u00e1v uchov\u00e1v\u00e1 zpr\u00e1vy v p\u0159\u00edpad\u011b, \u017ee nejsou aktivn\u00ed odb\u011bratel\u00e9, dokud se spot\u0159ebitel nep\u0159ihl\u00e1s\u00ed k front\u011b pro dod\u00e1n\u00ed zpr\u00e1v.<\/p>\n<p>Spolehlivost se \u010dasto zam\u011b\u0148uje s <i>perzistenc\u00ed<\/i> a, i kdy\u017e se tyto dva term\u00edny mohou zam\u011b\u0148ovat, pln\u00ed r\u016fzn\u00e9 funkce. Perzistence ur\u010duje, zda syst\u00e9m v\u00fdm\u011bny zpr\u00e1v zapisuje zpr\u00e1vu do n\u011bjak\u00e9ho \u00falo\u017ei\u0161t\u011b mezi jej\u00edm p\u0159ijet\u00edm a odesl\u00e1n\u00edm spot\u0159ebiteli. Zpr\u00e1vy odes\u00edlan\u00e9 do fronty mohou b\u00fdt nebo nemus\u00ed b\u00fdt perzistentn\u00ed.<br \/>\nV\u00fdm\u011bna zpr\u00e1v typu \u201eBod-bod\u201c se pou\u017e\u00edv\u00e1, kdy\u017e pou\u017eit\u00ed vy\u017eaduje jednor\u00e1zovou akci se zpr\u00e1vou. P\u0159\u00edkladem m\u016f\u017ee b\u00fdt nap\u0159\u00edklad vlo\u017een\u00ed prost\u0159edk\u016f na \u00fa\u010det nebo zpracov\u00e1n\u00ed objedn\u00e1vky na dod\u00e1n\u00ed. Pozd\u011bji se pod\u00edv\u00e1me na to, pro\u010d syst\u00e9m v\u00fdm\u011bny zpr\u00e1v s\u00e1m o sob\u011b nen\u00ed schopen zajistit jednor\u00e1zov\u00e9 dod\u00e1n\u00ed a pro\u010d fronty mohou zaru\u010dit dod\u00e1n\u00ed v nejlep\u0161\u00edm p\u0159\u00edpad\u011b <i>alespo\u0148 jednou<\/i>.<\/p>\n<h4>Publish-Subscribe<\/h4>\n<p><\/p>\n<blockquote><p>Gabriela vyt\u00e1\u010d\u00ed \u010d\u00edslo konference. Dokud je p\u0159ipojen\u00e1 ke konferenci, sly\u0161\u00ed v\u0161e, co mluv\u010d\u00ed \u0159\u00edk\u00e1, spolu s ostatn\u00edmi \u00fa\u010dastn\u00edky hovoru. Kdy\u017e se odpoj\u00ed, propou\u0161t\u00ed to, co bylo \u0159e\u010deno. Po op\u011btovn\u00e9m p\u0159ipojen\u00ed pokra\u010duje ve sly\u0161en\u00ed toho, co lid\u00e9 \u0159\u00edkaj\u00ed.<\/p><\/blockquote>\n<p> To je p\u0159\u00edklad modelu v\u00fdm\u011bny zpr\u00e1v <i>publikov\u00e1n\u00ed-odb\u011br<\/i>. Konferen\u010dn\u00ed hovor funguje jako vys\u00edlac\u00ed mechanismus. Mluv\u010d\u00ed se nestar\u00e1 o to, kolik lid\u00ed se aktu\u00e1ln\u011b p\u0159ipojilo k hovoru - syst\u00e9m zaji\u0161\u0165uje, \u017ee ka\u017ed\u00fd, kdo v dan\u00e9m okam\u017eiku p\u0159ipojuje, usly\u0161\u00ed to, co se \u0159\u00edk\u00e1.<br \/>\nV klasick\u00fdch syst\u00e9mech v\u00fdm\u011bny zpr\u00e1v je model v\u00fdm\u011bny zpr\u00e1v \u201epublikov\u00e1n\u00ed-odb\u011br\u201c realizov\u00e1n prost\u0159ednictv\u00edm <i>t\u00e9mat<\/i>T\u00e9ma poskytuje stejn\u00fd zp\u016fsob \u0161\u00ed\u0159en\u00ed jako mechanismus konference. Kdy\u017e je zpr\u00e1va odesl\u00e1na do t\u00e9matu, je distribuov\u00e1na <i>v\u0161em p\u0159ihl\u00e1\u0161en\u00fdm u\u017eivatel\u016fm<\/i>.<\/p>\n<p>T\u00e9mata obvykle <i>nejsou spolehliv\u00e1 (nondurable)<\/i>. Stejn\u011b jako poslucha\u010d, kter\u00fd nesly\u0161\u00ed, co se \u0159\u00edk\u00e1 na konferen\u010dn\u00edm hovoru, kdy\u017e se poslucha\u010d odpoj\u00ed, p\u0159edplatitel\u00e9 t\u00e9matu vynech\u00e1vaj\u00ed jak\u00e9koli zpr\u00e1vy, kter\u00e9 jsou odes\u00edl\u00e1ny v t\u00e9 dob\u011b, kdy jsou offline. Z tohoto d\u016fvodu lze \u0159\u00edci, \u017ee t\u00e9mata poskytuj\u00ed z\u00e1ruku doru\u010den\u00ed <i>ne v\u00edce ne\u017e jednou <\/i>pro ka\u017ed\u00e9ho spot\u0159ebitele.<\/p>\n<p>Modely v\u00fdm\u011bny zpr\u00e1v typu \u201epublikov\u00e1n\u00ed-p\u0159edplatn\u00e9\u201c se obvykle pou\u017e\u00edvaj\u00ed, kdy\u017e jsou zpr\u00e1vy informativn\u00ed a ztr\u00e1ta jedn\u00e9 zpr\u00e1vy nen\u00ed p\u0159\u00edli\u0161 v\u00fdznamn\u00e1. Nap\u0159\u00edklad t\u00e9ma m\u016f\u017ee p\u0159en\u00e1\u0161et teplotn\u00ed \u00fadaje ze skupiny senzor\u016f jednou za sekundu. Syst\u00e9m, kter\u00fd se zaj\u00edm\u00e1 o aktu\u00e1ln\u00ed teplotu a kter\u00fd se p\u0159ihl\u00e1s\u00ed k t\u00e9matu, se nebude ob\u00e1vat, pokud vynech\u00e1 zpr\u00e1vu \u2014 dal\u0161\u00ed p\u0159ijde brzy.<\/p>\n<h4>Hybridn\u00ed modely<\/h4>\n<p><\/p>\n<blockquote><p>Webov\u00e1 str\u00e1nka obchodu umis\u0165uje zpr\u00e1vy o objedn\u00e1vk\u00e1ch do \u201efronty zpr\u00e1v\u201c. Hlavn\u00edm spot\u0159ebitelem t\u011bchto zpr\u00e1v je uskute\u010d\u0148ovac\u00ed syst\u00e9m. Nav\u00edc mus\u00ed m\u00edt syst\u00e9m auditu kopie t\u011bchto zpr\u00e1v o objedn\u00e1vk\u00e1ch pro n\u00e1sledn\u00e9 sledov\u00e1n\u00ed. Oba syst\u00e9my nemohou vynech\u00e1vat zpr\u00e1vy, i kdy\u017e jsou syst\u00e9my n\u011bjakou dobu nedostupn\u00e9. Webov\u00e1 str\u00e1nka by nem\u011bla v\u011bd\u011bt o dal\u0161\u00edch syst\u00e9mech.<\/p><\/blockquote>\n<p> P\u0159\u00edpady pou\u017eit\u00ed \u010dasto vy\u017eaduj\u00ed kombinaci model\u016f v\u00fdm\u011bny zpr\u00e1v \u201epublikov\u00e1n\u00ed-p\u0159edplatn\u00e9\u201c a \u201epoint-to-point\u201c, nap\u0159\u00edklad kdy\u017e n\u011bkolika syst\u00e9m\u016fm je pot\u0159eba kopie zpr\u00e1vy a pro prevenci ztr\u00e1ty zpr\u00e1vy jsou zapot\u0159eb\u00ed jak spolehlivost, tak perzistence.<\/p>\n<p>V t\u011bchto p\u0159\u00edpadech je zapot\u0159eb\u00ed adres\u00e1t (destination) (obecn\u00fd term\u00edn pro fronty a t\u00e9mata), kter\u00fd distribuuje zpr\u00e1vy v\u011bt\u0161inou jako t\u00e9ma, tak\u017ee ka\u017ed\u00e1 zpr\u00e1va je odesl\u00e1na do jednotliv\u00e9ho syst\u00e9mu, kter\u00fd m\u00e1 o tyto zpr\u00e1vy z\u00e1jem, ale tak\u00e9 ka\u017ed\u00e9 syst\u00e9my mohou definovat n\u011bkolik spot\u0159ebitel\u016f, kte\u0159\u00ed p\u0159ij\u00edmaj\u00ed p\u0159\u00edchoz\u00ed zpr\u00e1vy, co\u017e je v\u00edce podobn\u00e9 front\u011b. Typ \u010dten\u00ed v tomto p\u0159\u00edpad\u011b je <i>jednou pro ka\u017edou zainteresovanou stranu<\/i>. Tyto hybridn\u00ed adres\u00e1ty \u010dasto vy\u017eaduj\u00ed spolehlivost (durability), tak\u017ee pokud se z\u00e1kazn\u00edk odpoj\u00ed, zpr\u00e1vy odeslan\u00e9 b\u011bhem tohoto obdob\u00ed budou p\u0159ijaty po op\u011btovn\u00e9m p\u0159ipojen\u00ed z\u00e1kazn\u00edka.<\/p>\n<p>Hybridn\u00ed modely nejsou novinkou a lze je pou\u017e\u00edvat ve v\u011bt\u0161in\u011b syst\u00e9m\u016f pro v\u00fdm\u011bnu zpr\u00e1v, v\u010detn\u011b ActiveMQ (pomoc\u00ed virtu\u00e1ln\u00edch nebo slo\u017een\u00fdch adres\u00e1t\u016f, kter\u00e9 kombinuj\u00ed t\u00e9mata a fronty) a tak\u00e9 Kafka (implicitn\u011b, jako z\u00e1kladn\u00ed vlastnost n\u00e1vrhu jej\u00edho adres\u00e1ta).<\/p>\n<p>Te\u010f, kdy\u017e m\u00e1me n\u011bjakou z\u00e1kladn\u00ed terminologii a ch\u00e1p\u00e1n\u00ed toho, k \u010demu bychom mohli pot\u0159ebovat syst\u00e9m v\u00fdm\u011bny zpr\u00e1v, poj\u010fme se zam\u011b\u0159it na detaily.<\/p>\n<p><b> P\u0159eklad byl proveden: <noindex><a rel=\"nofollow\" href=\"http:\/\/tele.gg\/middle_java\">tele.gg\/middle_java<\/a><\/noindex><\/b><\/p>\n<p>N\u00e1sleduj\u00edc\u00ed p\u0159ekl\u00e1dan\u00e1 \u010d\u00e1st: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466585\">Kapitola 3. Kafka<\/a><\/noindex><\/p>\n<p><i>Pokra\u010dov\u00e1n\u00ed p\u0159\u00ed\u0161t\u011b\u2026<\/i><br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466385\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041d\u0430\u0447\u0430\u043b \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043d\u0438\u0433\u0438: &#171;Understanding Message Brokers&#171;, \u0430\u0432\u0442\u043e\u0440: Jakub Korab, \u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e: O&#8217;Reilly Media, Inc., \u0434\u0430\u0442\u0430 \u0438\u0437\u0434\u0430\u043d\u0438\u044f: June 2017, ISBN: 9781492049296. \u0418\u0437 \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043a \u043a\u043d\u0438\u0433\u0435: &#171;\u2026 \u042d\u0442\u0430 \u043a\u043d\u0438\u0433\u0430 \u043d\u0430\u0443\u0447\u0438\u0442 \u0432\u0430\u0441 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u0442\u044c \u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043d\u0430 \u0431\u0440\u043e\u043a\u0435\u0440\u0430\u0445, \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044f \u0438 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0434\u0432\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0431\u0440\u043e\u043a\u0435\u0440\u043e\u0432: Apache ActiveMQ \u0438 Apache Kafka. \u0417\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0443\u0442 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38171","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041d\u0430\u0447\u0430\u043b \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043d\u0438\u0433\u0438: &quot;Understanding Message.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/ponimanie-brokerov-soobshhenij-izuchenie-mehaniki-obmena-soobshheniyami-posredstvom-activemq-i-kafka-glava-1\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0431\u0440\u043e\u043a\u0435\u0440\u043e\u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c ActiveMQ \u0438 Kafka. \u0413\u043b\u0430\u0432\u0430 1 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041d\u0430\u0447\u0430\u043b \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043d\u0438\u0433\u0438: &quot;Understanding Message.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/ponimanie-brokerov-soobshhenij-izuchenie-mehaniki-obmena-soobshheniyami-posredstvom-activemq-i-kafka-glava-1\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:22:03+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:22:03+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Pochopen\u00ed zprost\u0159edkovatel\u016f zpr\u00e1v. Studium mechaniky v\u00fdm\u011bny zpr\u00e1v prost\u0159ednictv\u00edm ActiveMQ a Kafka. Kapitola 1 | ProHoster","description":"Ahoj v\u0161ichni! Za\u010dal jsem p\u0159eklad mal\u00e9 knihy: \"Understanding Message.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/ponimanie-brokerov-soobshhenij-izuchenie-mehaniki-obmena-soobshheniyami-posredstvom-activemq-i-kafka-glava-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0431\u0440\u043e\u043a\u0435\u0440\u043e\u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c ActiveMQ \u0438 Kafka. \u0413\u043b\u0430\u0432\u0430 1 | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041d\u0430\u0447\u0430\u043b \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043d\u0438\u0433\u0438: &quot;Understanding Message.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/ponimanie-brokerov-soobshhenij-izuchenie-mehaniki-obmena-soobshheniyami-posredstvom-activemq-i-kafka-glava-1","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:22:03+00:00","article:modified_time":"2019-10-31T19:22:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38171","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 20:46:00","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:14:22","updated":"2026-01-23 20:46:00","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/38171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=38171"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/38171\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=38171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=38171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=38171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}