{"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\/pl\/blog\/administrirovanie\/ponimanie-brokerov-soobshhenij-izuchenie-mehaniki-obmena-soobshheniyami-posredstvom-activemq-i-kafka-glava-1","title":{"rendered":"Zrozumienie broker\u00f3w wiadomo\u015bci. Badanie mechaniki wymiany wiadomo\u015bci przy u\u017cyciu ActiveMQ i Kafka. Rozdzia\u0142 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Cze\u015b\u0107 wszystkim!<\/p>\n<p>Rozpocz\u0105\u0142em t\u0142umaczenie niewielkiej ksi\u0105\u017cki:<br \/>\n&#171;<b><noindex><a rel=\"nofollow\" href=\"https:\/\/www.oreilly.com\/library\/view\/understanding-message-brokers\/9781492049296\/\">Zrozumienie broker\u00f3w wiadomo\u015bci<\/a><\/noindex><\/b>&#171; <br \/>\nautor: Jakub Korab, wydawnictwo: O'Reilly Media, Inc., data wydania: czerwiec 2017, ISBN: 9781492049296.<\/p>\n<p>Z wprowadzenia do ksi\u0105\u017cki:<br \/>\n\u00ab\u2026 <i>Ta ksi\u0105\u017cka nauczy ci\u0119 my\u015ble\u0107 o systemach wymiany wiadomo\u015bci na brokerach, por\u00f3wnuj\u0105c i przeciwstawiaj\u0105c dwie popularne technologie broker\u00f3w: Apache ActiveMQ i Apache Kafka. Przyk\u0142ady zastosowa\u0144 i motywacje w rozwoju, kt\u00f3re doprowadzi\u0142y ich tw\u00f3rc\u00f3w do przyj\u0119cia zupe\u0142nie r\u00f3\u017cnych podej\u015b\u0107 w tej samej dziedzinie \u2014 wymianie wiadomo\u015bci mi\u0119dzy systemami z po\u015brednicz\u0105cym brokerem, b\u0119d\u0105 om\u00f3wione. Przyjrzymy si\u0119 tym technologiom od podstaw i podkre\u015blimy wp\u0142yw r\u00f3\u017cnych opcji projektowych na tej drodze. Zyskasz g\u0142\u0119bokie zrozumienie obu produkt\u00f3w, wiedz\u0119 o tym, jak nale\u017cy i nie nale\u017cy ich u\u017cywa\u0107 oraz zrozumienie, na co zwraca\u0107 uwag\u0119 przy rozwa\u017caniu innych technologii wymiany wiadomo\u015bci w przysz\u0142o\u015bci.<\/i> \u2026\u00bb<\/p>\n<p>Przet\u0142umaczone do tej pory cz\u0119\u015bci:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466385\">Rozdzia\u0142 1. Wprowadzenie<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466585\">Rozdzia\u0142 3. Kafka<\/a><\/noindex><\/p>\n<p>B\u0119d\u0119 publikowa\u0107 zrealizowane rozdzia\u0142y w miar\u0119 post\u0119pu t\u0142umaczenia.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>ROZDZIA\u0141 1<\/h2>\n<p><\/p>\n<h2>Wprowadzenie<\/h2>\n<p>\nWymiana wiadomo\u015bci mi\u0119dzy systemami to jedna z najmniej zrozumianych dziedzin IT. Jako programista lub architekt mo\u017cesz by\u0107 dobrze zaznajomiony z r\u00f3\u017cnymi frameworkami i bazami danych. Jednak prawdopodobnie masz tylko powierzchowne poj\u0119cie o tym, jak dzia\u0142aj\u0105 technologie wymiany wiadomo\u015bci bazuj\u0105ce na brokerze. Je\u015bli tak si\u0119 czujesz, nie martw si\u0119, jeste\u015b w dobrej kompaniji.<\/p>\n<p>Ludzie zazwyczaj maj\u0105 ograniczony kontakt z infrastruktur\u0105 wymiany wiadomo\u015bci. Cz\u0119sto \u0142\u0105cz\u0105 si\u0119 z systemem stworzonym dawno temu lub pobieraj\u0105 dystrybucj\u0119 z internetu, instaluj\u0105 j\u0105 w produkcji i zaczynaj\u0105 pisa\u0107 kod. Po uruchomieniu infrastruktury w produkcji wyniki mog\u0105 by\u0107 niejednoznaczne: utrata wiadomo\u015bci podczas awarii, nieprawid\u0142owe dzia\u0142anie wysy\u0142ania lub brokerzy, kt\u00f3rzy \u201ezawieszaj\u0105\u201d twoje producent\u00f3w lub nie wysy\u0142aj\u0105 wiadomo\u015bci do twoich konsument\u00f3w.<\/p>\n<p>Brzmi znajomo?<\/p>\n<p>Typowym scenariuszem jest sytuacja, w kt\u00f3rej Tw\u00f3j kod do wymiany wiadomo\u015bci dzia\u0142a doskonale, a\u017c pewnego dnia przestaje. Ten okres usypia czujno\u015b\u0107 i daje fa\u0142szywe poczucie bezpiecze\u0144stwa, co prowadzi do dalszego pisania kodu opartego na mylnych przekonaniach na temat fundamentalnego zachowania technologii. Kiedy co\u015b zaczyna i\u015b\u0107 nie tak, stajesz w obliczu niewygodnej prawdy: naprawd\u0119 nie zrozumia\u0142e\u015b podstawowego zachowania produktu ani kompromis\u00f3w dokonanych przez jego tw\u00f3rc\u00f3w, takich jak wydajno\u015b\u0107 vs. niezawodno\u015b\u0107, czy transakcjonalno\u015b\u0107 vs. horyzontalna skalowalno\u015b\u0107.<\/p>\n<p>Bez g\u0142\u0119bokiego zrozumienia, jak dzia\u0142aj\u0105 brokerzy, ludzie sk\u0142adaj\u0105 bardzo rozs\u0105dne twierdzenia o ich systemach wymiany wiadomo\u015bci, takie jak:<\/p>\n<ul>\n<li>System nigdy nie straci wiadomo\u015bci.<\/li>\n<li>Wiadomo\u015bci b\u0119d\u0105 przetwarzane w spos\u00f3b sekwencyjny.<\/li>\n<li>Dodanie konsument\u00f3w przyspieszy system.<\/li>\n<li>Wiadomo\u015bci b\u0119d\u0105 dostarczane tylko raz.<\/li>\n<\/ul>\n<p>\nNiestety, niekt\u00f3re z tych twierdze\u0144 opieraj\u0105 si\u0119 na za\u0142o\u017ceniach, kt\u00f3re s\u0105 prawdziwe tylko w okre\u015blonych okoliczno\u015bciami, podczas gdy inne s\u0105 po prostu nieprawdziwe.<\/p>\n<p>Ta ksi\u0105\u017cka nauczy Ci\u0119 my\u015ble\u0107 o systemach wymiany wiadomo\u015bci opartych na brokerach, por\u00f3wnuj\u0105c i przeciwstawiaj\u0105c dwie popularne technologie broker\u00f3w: Apache ActiveMQ i Apache Kafka. Przedstawione zostan\u0105 przyk\u0142ady u\u017cycia i bod\u017ace rozwoju, kt\u00f3re sk\u0142oni\u0142y ich tw\u00f3rc\u00f3w do zastosowania ca\u0142kowicie r\u00f3\u017cnych podej\u015b\u0107 do tej samej dziedziny \u2014 wymiany wiadomo\u015bci pomi\u0119dzy systemami z po\u015brednicz\u0105cym brokerem. Zbadamy te technologie od podstaw i wska\u017aemy wp\u0142yw r\u00f3\u017cnych opcji projektowych na tej drodze. Uzyskasz g\u0142\u0119bokie zrozumienie obu produkt\u00f3w, poznasz, jak powinny i nie powinny by\u0107 u\u017cywane, oraz dowiesz si\u0119, na co zwr\u00f3ci\u0107 uwag\u0119 przy rozwa\u017caniu innych technologii wymiany wiadomo\u015bci w przysz\u0142o\u015bci.<\/p>\n<p>Zanim zaczniemy, przejd\u017amy przez podstawy.<\/p>\n<h3>Co to jest system wymiany wiadomo\u015bci i po co jest potrzebny?<\/h3>\n<p>\nAby dwa aplikacje mog\u0142y komunikowa\u0107 si\u0119 ze sob\u0105, musz\u0105 najpierw zdefiniowa\u0107 interfejs. Definicja tego interfejsu obejmuje wyb\u00f3r transportu lub protoko\u0142u, takiego jak HTTP, MQTT lub SMTP, oraz uzgodnienie format\u00f3w wiadomo\u015bci, kt\u00f3rymi b\u0119d\u0105 wymienia\u0107 si\u0119 systemy. Mo\u017ce to by\u0107 rygorystyczny proces, na przyk\u0142ad okre\u015blenie schematu XML z wymaganiami dotycz\u0105cymi \u0142adunku (payload) wiadomo\u015bci, lub mo\u017ce by\u0107 znacznie mniej formalne, na przyk\u0142ad umowa mi\u0119dzy dwoma programistami, \u017ce pewna cz\u0119\u015b\u0107 \u017c\u0105dania HTTP b\u0119dzie zawiera\u0142a identyfikator klienta.<\/p>\n<p>Dop\u00f3ki format wiadomo\u015bci i kolejno\u015b\u0107 ich wysy\u0142ania mi\u0119dzy systemami s\u0105 uzgodnione, b\u0119d\u0105 mog\u0142y one wsp\u00f3\u0142dzia\u0142a\u0107 bez martwienia si\u0119 o implementacj\u0119 innego systemu. Wewn\u0105trz tych system\u00f3w, takie jak j\u0119zyk programowania czy u\u017cyta ramka, mog\u0105 si\u0119 z czasem zmienia\u0107. Dop\u00f3ki sama umowa jest utrzymywana, wsp\u00f3\u0142praca mo\u017ce trwa\u0107 bez zmian z drugiej strony. Te dwa systemy s\u0105 efektywnie rozdzielone przez ten interfejs.<\/p>\n<p>Systemy wymiany wiadomo\u015bci zazwyczaj przewiduj\u0105 udzia\u0142 po\u015brednika mi\u0119dzy dwoma systemami, kt\u00f3re wsp\u00f3\u0142dzia\u0142aj\u0105, aby dalej rozdzieli\u0107 nadawc\u0119 od odbiorcy lub odbiorc\u00f3w. System wymiany wiadomo\u015bci umo\u017cliwia nadawcy wys\u0142anie wiadomo\u015bci, nie wiedz\u0105c, gdzie znajduje si\u0119 odbiorca, czy jest aktywny, ani ile ich egzemplarzy.<\/p>\n<p>Rozwa\u017cmy kilka analogii problem\u00f3w, kt\u00f3re rozwi\u0105zuje system wymiany wiadomo\u015bci, oraz wprowad\u017amy kilka podstawowych termin\u00f3w.<\/p>\n<h4>Point-to-Point<\/h4>\n<p><\/p>\n<blockquote><p>Aleksandra idzie na poczt\u0119, aby wys\u0142a\u0107 paczk\u0119 do Adama. Podchodzi do okienka i wr\u0119cza pracownikowi paczk\u0119. Pracownik odbiera paczk\u0119 i wydaje Aleksandrze pokwitowanie. Adam nie musi by\u0107 w domu w momencie wysy\u0142ania paczki. Aleksandra jest pewna, \u017ce paczka zostanie dostarczona do Adama w pewnym momencie w przysz\u0142o\u015bci i mo\u017ce kontynuowa\u0107 swoje sprawy. P\u00f3\u017aniej, w pewnym momencie, Adam otrzymuje paczk\u0119.<\/p><\/blockquote>\n<p>To przyk\u0142ad modelu wymiany wiadomo\u015bci <i>punkt-punkt<\/i>. Pocztowy urz\u0105d dzia\u0142a tutaj jako mechanizm dystrybucji paczek, gwarantuj\u0105c, \u017ce ka\u017cda paczka zostanie dostarczona raz. U\u017cycie urz\u0119du pocztowego oddziela akt wys\u0142ania paczki od dostarczenia paczki.<br \/>\nW klasycznych systemach komunikacji model \u201epunkt-punkt\u201d jest realizowany przez <i>kolejki<\/i>. Kolejka dzia\u0142a jako bufor FIFO (pierwszy wszed\u0142, pierwszy wyszed\u0142), do kt\u00f3rego mo\u017ce zapisa\u0107 si\u0119 jeden lub kilku odbiorc\u00f3w. Ka\u017cda wiadomo\u015b\u0107 jest dostarczana tylko <i>jednemu z zapisanych odbiorc\u00f3w<\/i>. Kolejki zazwyczaj staraj\u0105 si\u0119 sprawiedliwie rozdziela\u0107 wiadomo\u015bci mi\u0119dzy odbiorcami. Tylko jeden odbiorca otrzyma dan\u0105 wiadomo\u015b\u0107.<\/p>\n<p>Do kolejek stosuje si\u0119 termin \u201eniezawodne\u201d (ang. \"durable\"). <i>Niezawodno\u015b\u0107 <\/i> \u2014 to w\u0142a\u015bciwo\u015b\u0107 us\u0142ugi, kt\u00f3ra zapewnia, \u017ce system wymiany wiadomo\u015bci b\u0119dzie przechowywa\u0142 wiadomo\u015bci w przypadku braku aktywnych subskrybent\u00f3w, dop\u00f3ki odbiorca nie zapisze si\u0119 na kolejk\u0119 w celu otrzymania wiadomo\u015bci.<\/p>\n<p>Niezawodno\u015b\u0107 cz\u0119sto mylona jest z <i>permanencj\u0105<\/i> , i cho\u0107 te dwa terminy s\u0105 zamienne, pe\u0142ni\u0105 r\u00f3\u017cne funkcje. Permanencja okre\u015bla, czy wiadomo\u015b\u0107 jest zapisywana przez system wymiany wiadomo\u015bci w jakim\u015b rodzaj przechowywania mi\u0119dzy odebraniem a wys\u0142aniem jej do odbiorcy. Wiadomo\u015bci wysy\u0142ane do kolejki mog\u0105 by\u0107 lub nie by\u0107 trwa\u0142e.<br \/>\nWymiana wiadomo\u015bci typu \u201epunkt-punkt\u201d jest wykorzystywana, gdy przypadek u\u017cycia wymaga jednorazowej akcji z wiadomo\u015bci\u0105. Przyk\u0142adem mo\u017ce by\u0107 wp\u0142ata na konto lub realizacja zam\u00f3wienia na dostaw\u0119. Om\u00f3wimy p\u00f3\u017aniej, dlaczego system wymiany wiadomo\u015bci sam w sobie nie jest w stanie zapewni\u0107 jednorazowej dostawy i dlaczego kolejki mog\u0105 w najlepszym razie zapewni\u0107 gwarancj\u0119 dostawy <i>przynajmniej raz<\/i>.<\/p>\n<h4>Publikacja-Subskrypcja<\/h4>\n<p><\/p>\n<blockquote><p>Gabriela wybiera numer konferencji. Podczas gdy jest pod\u0142\u0105czona do konferencji, s\u0142yszy wszystko, co m\u00f3wi m\u00f3wca, razem z innymi uczestnikami po\u0142\u0105czenia. Gdy si\u0119 roz\u0142\u0105cza, pomija to, co zosta\u0142o powiedziane. Po ponownym po\u0142\u0105czeniu kontynuuje s\u0142uchanie, co jest m\u00f3wione.<\/p><\/blockquote>\n<p> To przyk\u0142ad modelu wymiany wiadomo\u015bci <i>publikacja-subskrypcja<\/i>. Konferencja dzia\u0142a jak mechanizm broadcastowy. M\u00f3wi\u0105ca osoba nie przejmuje si\u0119 tym, ile os\u00f3b aktualnie do\u0142\u0105czy\u0142o do rozmowy - system gwarantuje, \u017ce ka\u017cdy, kto pod\u0142\u0105czy\u0142 si\u0119 w danym momencie, us\u0142yszy to, co jest m\u00f3wione.<br \/>\nW klasycznych systemach komunikacji model wymiany wiadomo\u015bci \u201epublikacja-subskrypcja\u201d jest realizowany przez <i>tematy<\/i>Temat zapewnia taki sam spos\u00f3b rozg\u0142aszania, jak mechanizm konferencyjny. Gdy wiadomo\u015b\u0107 jest wysy\u0142ana do tematu, jest rozdzielana <i>do wszystkich subskrybent\u00f3w<\/i>.<\/p>\n<p>Tematy zwykle <i>s\u0105 nietrwa\u0142e (nondurable)<\/i>. Podobnie jak s\u0142uchacz, kt\u00f3ry nie s\u0142yszy, co si\u0119 m\u00f3wi w rozmowie konferencyjnej, gdy s\u0142uchacz si\u0119 roz\u0142\u0105cza, subskrybenci tematu pomijaj\u0105 wszelkie wiadomo\u015bci, kt\u00f3re s\u0105 wysy\u0142ane w momencie, gdy s\u0105 w trybie offline. Z tego powodu mo\u017cna powiedzie\u0107, \u017ce tematy zapewniaj\u0105 gwarancj\u0119 dostarczenia <i>nie wi\u0119cej ni\u017c raz <\/i>dla ka\u017cdego konsumenta.<\/p>\n<p>Wymiana wiadomo\u015bci typu \u201epublikacja-subskrypcja\u201d jest zwykle stosowana, gdy wiadomo\u015bci maj\u0105 charakter informacyjny i utrata jednej wiadomo\u015bci nie ma wi\u0119kszego znaczenia. Na przyk\u0142ad temat mo\u017ce przesy\u0142a\u0107 odczyty temperatury z grupy czujnik\u00f3w raz na sekund\u0119. System, kt\u00f3ry interesuje si\u0119 aktualn\u0105 temperatur\u0105 i kt\u00f3ry subskrybuje temat, nie martwi si\u0119, je\u015bli przegapi wiadomo\u015b\u0107 \u2014 inna nadejdzie wkr\u00f3tce.<\/p>\n<h4>Modele hybrydowe<\/h4>\n<p><\/p>\n<blockquote><p>Strona internetowa sklepu umieszcza wiadomo\u015bci o zam\u00f3wieniach w \u201ekolejce wiadomo\u015bci\u201d. G\u0142\u00f3wnym konsumentem tych wiadomo\u015bci jest system wykonawczy. Ponadto system audytu musi mie\u0107 kopie tych wiadomo\u015bci o zam\u00f3wieniach do p\u00f3\u017aniejszego monitorowania. Oba systemy nie mog\u0105 przegapi\u0107 wiadomo\u015bci, nawet je\u015bli same systemy pozostaj\u0105 niedost\u0119pne przez jaki\u015b czas. Strona internetowa nie powinna zna\u0107 innych system\u00f3w.<\/p><\/blockquote>\n<p> Scenariusze u\u017cycia cz\u0119sto wymagaj\u0105 po\u0142\u0105czenia modeli wymiany wiadomo\u015bci \u201epublikacja-subskrypcja\u201d i \u201epunkt-punkt\u201d, na przyk\u0142ad, gdy kilka system\u00f3w potrzebuje kopii wiadomo\u015bci, a do zapobiegania utracie wiadomo\u015bci wymagana jest zar\u00f3wno niezawodno\u015b\u0107, jak i trwa\u0142o\u015b\u0107.<\/p>\n<p>W takich przypadkach wymagany jest odbiorca (destination) (og\u00f3lny termin dla kolejek i temat\u00f3w), kt\u00f3ry rozdziela wiadomo\u015bci g\u0142\u00f3wnie jak temat, tak \u017ceby ka\u017cda wiadomo\u015b\u0107 by\u0142a wysy\u0142ana do oddzielnego systemu zainteresowanego tymi wiadomo\u015bciami, ale r\u00f3wnie\u017c w kt\u00f3rym ka\u017cdy system mo\u017ce okre\u015bli\u0107 kilku konsument\u00f3w, kt\u00f3rzy otrzymuj\u0105 nadchodz\u0105ce wiadomo\u015bci, co bardziej przypomina kolejk\u0119. Typ odczytu w tym przypadku \u2014 <i>raz dla ka\u017cdej zainteresowanej strony<\/i>Te hybrydowe adresy cz\u0119sto wymagaj\u0105 niezawodno\u015bci, dlatego je\u015bli konsument zostanie od\u0142\u0105czony, wiadomo\u015bci wysy\u0142ane w tym czasie s\u0105 przyjmowane po ponownym nawi\u0105zaniu po\u0142\u0105czenia przez konsumenta.<\/p>\n<p>Hybrydowe modele nie s\u0105 nowe i mog\u0105 by\u0107 stosowane w wi\u0119kszo\u015bci system\u00f3w wymiany wiadomo\u015bci, w tym w ActiveMQ (poprzez wirtualne lub z\u0142o\u017cone adresy, kt\u00f3re \u0142\u0105cz\u0105 tematy i kolejki) oraz w Kafka (niejawnie, jako fundamentalna cecha projektowania jej adresat\u00f3w).<\/p>\n<p>Teraz, gdy mamy podstawow\u0105 terminologi\u0119 i zrozumienie tego, do czego mo\u017ce nam si\u0119 przyda\u0107 system wymiany wiadomo\u015bci, przejd\u017amy do szczeg\u00f3\u0142\u00f3w.<\/p>\n<p><b> T\u0142umaczenie wykonano: <noindex><a rel=\"nofollow\" href=\"http:\/\/tele.gg\/middle_java\">tele.gg\/middle_java<\/a><\/noindex><\/b><\/p>\n<p>Nast\u0119pna przet\u0142umaczona cz\u0119\u015b\u0107: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466585\">Rozdzia\u0142 3. Kafka<\/a><\/noindex><\/p>\n<p><i>Ci\u0105g dalszy nast\u0105pi\u2026<\/i><br \/>\n<br \/>\u0179r\u00f3d\u0142o: <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.1.1 - 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\/pl\/blog\/administrirovanie\/ponimanie-brokerov-soobshhenij-izuchenie-mehaniki-obmena-soobshheniyami-posredstvom-activemq-i-kafka-glava-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\/pl\/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\udd47Zrozumienie broker\u00f3w wiadomo\u015bci. Badanie mechaniki wymiany wiadomo\u015bci za pomoc\u0105 ActiveMQ i Kafka. Rozdzia\u0142 1 | ProHoster","description":"Cze\u015b\u0107 wszystkim! Zaczynam t\u0142umaczenie ma\u0142ej ksi\u0105\u017cki: \"Understanding Message.","canonical_url":"https:\/\/prohoster.info\/pl\/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":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/38171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=38171"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/38171\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=38171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=38171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=38171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}