{"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\/hr\/blog\/administrirovanie\/ponimanie-brokerov-soobshhenij-izuchenie-mehaniki-obmena-soobshheniyami-posredstvom-activemq-i-kafka-glava-1","title":{"rendered":"Razumijevanje posrednika poruka. U\u010denje mehanike razmjene poruka putem ActiveMQ i Kafke. Poglavlje 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Pozdrav svima!<\/p>\n<p>Zapo\u010deo sam prevo\u0111enje male knjige:<br \/>\n\u00ab<b><noindex><a rel=\"nofollow\" href=\"https:\/\/www.oreilly.com\/library\/view\/understanding-message-brokers\/9781492049296\/\">Razumijevanje posrednika poruka<\/a><\/noindex><\/b>\u00ab, <br \/>\nautor: Jakub Korab, izdava\u010d: O'Reilly Media, Inc., datum izdanja: juni 2017, ISBN: 9781492049296.<\/p>\n<p>Iz uvoda u knjigu:<br \/>\n\u2026 <i>Ova knjiga \u0107e vas nau\u010diti razmi\u0161ljati o sustavima razmjene poruka na posrednicima, uspore\u0111uju\u0107i i suprotstavljaju\u0107i dvije popularne tehnologije posrednika: Apache ActiveMQ i Apache Kafka. Ovdje \u0107e se iznijeti primjeri kori\u0161tenja i motivi razvoja koji su doveli do toga da su njihovi razvija\u010di koristili potpuno razli\u010dite pristupe istom podru\u010dju - razmjeni poruka izme\u0111u sustava s posrednikom. Prou\u010dit \u0107emo te tehnologije od nule i naglasiti utjecaj razli\u010ditih opcija dizajna na tom putu. Ste\u0107i \u0107ete duboko razumijevanje oba proizvoda, shva\u0107anje kako ih koristiti, a kako ne koristiti, te razumijevanje na \u0161to obratiti pa\u017enju prilikom razmatranja drugih tehnologija razmjene poruka u budu\u0107nosti.<\/i> \u2026\u00bb<\/p>\n<p>Prevedeni dijelovi do sada:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466385\">Poglavlje 1. Uvod<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466585\">Poglavlje 3. Kafka<\/a><\/noindex><\/p>\n<p>Objavljivat \u0107u zavr\u0161ena poglavlja kako budem prevodio.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>POGLAVLJE 1<\/h2>\n<p><\/p>\n<h2>Uvod<\/h2>\n<p>\nMe\u0111usistemska razmjena poruka je jedno od najmanje razumijevanih podru\u010dja IT-a. Kao programer ili arhitekt, mo\u017eete biti dobro upoznati s razli\u010ditim okvirima i bazama podataka. Me\u0111utim, vrlo je vjerojatno da imate samo povremenu povezanost s na\u010dinom na koji rade tehnologije razmjene poruka zasnovane na posredniku. Ako se tako osje\u0107ate, ne brinite, niste sami.<\/p>\n<p>Ljudi obi\u010dno kontaktiraju s infrastrukturom razmjene poruka vrlo ograni\u010deno. \u010cesto se povezuju sa sustavom koji je stvoren davno, ili preuzimaju distribuciju s interneta, instaliraju je u PROMu i po\u010dinju pisati kod za njega. Nakon pokretanja infrastrukture u PROMu, rezultati mogu biti nejasni: gubitak poruka tijekom kvarova, slanje ne funkcionira onako kako ste o\u010dekivali, ili posrednici \"zaklju\u010davaju\" va\u0161e producere ili ne \u0161alju poruke va\u0161im potro\u0161a\u010dima.<\/p>\n<p>Zvu\u010di poznato?<\/p>\n<p>Uobi\u010dajena situacija je kada va\u0161 kod za razmjenu poruka savr\u0161eno funkcionira, sve do trenutka kada prestane raditi. Ovaj period uspava budnost i stvara la\u017eni osje\u0107aj sigurnosti, \u0161to dovodi do jo\u0161 ve\u0107eg koda temeljenog na pogre\u0161nim pretpostavkama o temeljnim pona\u0161anjima tehnologije. Kada ne\u0161to po\u010dne i\u0107i po zlu, suo\u010davate se s neugodnom istinom: da zapravo niste razumjeli osnovno pona\u0161anje proizvoda ili kompromisne odluke koje su autori donijeli, poput performansi naspram pouzdanosti, ili transakcijskog modela naspram horizontalne skalabilnosti.<\/p>\n<p>Bez dubokog razumijevanja kako brokeri rade, ljudi donose naizgled razumne tvrdnje o njihovim sustavima za razmjenu poruka, poput:<\/p>\n<ul>\n<li>Sustav nikada ne\u0107e izgubiti poruke<\/li>\n<li>Poruke \u0107e se obra\u0111ivati sekvencijalno<\/li>\n<li>Dodavanje potro\u0161a\u010da u\u010dinit \u0107e sustav br\u017eim<\/li>\n<li>Poruke \u0107e biti isporu\u010dene samo jednom<\/li>\n<\/ul>\n<p>\nNa\u017ealost, neke od ovih tvrdnji temelje se na pretpostavkama koje se odnose samo na odre\u0111ene okolnosti, dok su druge jednostavno neto\u010dne.<\/p>\n<p>Ova knjiga \u0107e vas nau\u010diti kako razmi\u0161ljati o sustavima razmjene poruka temeljenim na brokerima, uspore\u0111uju\u0107i i kontrastiraju\u0107i dvije popularne brokerske tehnologije: Apache ActiveMQ i Apache Kafka. Ovdje \u0107e biti predstavljeni primjeri kori\u0161tenja i razvojni poticaji koji su doveli do toga da su njihovi autori koristili potpuno razli\u010dite pristupe u istoj oblasti \u2014 razmjeni poruka izme\u0111u sustava s posredni\u010dkim brokerom. Istra\u017eit \u0107emo ove tehnologije od temelja i istaknuti utjecaj razli\u010ditih dizajnerskih opcija na tom putu. Ste\u0107i \u0107ete duboko razumijevanje oba proizvoda, shva\u0107anje na\u010dina na koji ih treba i ne treba koristiti, kao i razumijevanje na \u0161to treba obratiti pozornost pri razmatranju drugih tehnologija razmjene poruka u budu\u0107nosti.<\/p>\n<p>Prije nego \u0161to zapo\u010dnemo, pro\u0111imo kroz osnove.<\/p>\n<h3>\u0160to je sustav razmjene poruka i za\u0161to je potreban<\/h3>\n<p>\nDa bi se dvije aplikacije mogle me\u0111usobno komunicirati, prvo moraju odrediti su\u010delje. Definiranje tog su\u010delja uklju\u010duje odabir transporta ili protokola, poput HTTP-a, MQTT-a ili SMTP-a, te usugla\u0161avanje formata poruka koje \u0107e sustavi razmjenjivati. To mo\u017ee biti strogi proces, poput definiranja XML sheme s zahtjevima za tro\u0161kovima korisnog tereta (payload) poruke, ili mo\u017ee biti daleko manje formalno, na primjer, sporazum izme\u0111u dva programera da \u0107e odre\u0111eni dio HTTP zahtjeva sadr\u017eavati identifikator klijenta.<\/p>\n<p>Sve dok su format poruka i redoslijed njihovog slanja izme\u0111u sustava usugla\u0161eni, oni \u0107e mo\u0107i me\u0111usobno komunicirati, ne brinu\u0107i se o implementaciji drugog sustava. Unutarnje komponente tih sustava, poput programskog jezika ili kori\u0161tenog framework-a, mogu se tijekom vremena mijenjati. Sve dok se odr\u017eava sam ugovor, komunikacija mo\u017ee nastaviti bez promjena s druge strane. Ova dva sustava su efektivno odvojena (razdvojena) ovim su\u010deljem.<\/p>\n<p>Sustavi za razmjenu poruka obi\u010dno predvi\u0111aju sudjelovanje posrednika izme\u0111u dvaju sustava koji me\u0111usobno komuniciraju radi dodatnog razdvajanja po\u0161iljatelja od primatelja ili primatelja. U tom slu\u010daju sustav razmjene poruka omogu\u0107uje po\u0161iljatelju da po\u0161alje poruku ne znaju\u0107i gdje se primatelj nalazi, je li aktivan ili koliko ih ima instanci.<\/p>\n<p>Razmotrite nekoliko analogija problema koje sustav razmjene poruka rje\u0161ava, i uvedimo neke osnovne termine.<\/p>\n<h4>To\u010dka do to\u010dke<\/h4>\n<p><\/p>\n<blockquote><p>Aleksandra ide na po\u0161tu kako bi poslala paket Adamu. Prilazi \u0161alteru i predaje zaposleniku paket. Zaposlenik uzima paket i izdaje Aleksandri potvrdu. Adamu ne treba biti kod ku\u0107e u trenutku slanja paketa. Aleksandra je sigurna da \u0107e paket biti dostavljen Adamu u nekom trenutku u budu\u0107nosti i mo\u017ee nastaviti s vlastitim poslovima. Kasnije, u nekom trenutku, Adam prima paket.<\/p><\/blockquote>\n<p>Ovo je primjer modela razmjene poruka <i>to\u010dka-to\u010dka<\/i>. Po\u0161ta ovdje djeluje kao mehanizam za distribuciju paketa, osiguravaju\u0107i da \u0107e svaki paket biti dostavljen jednom. Kori\u0161tenje po\u0161te odvaja \u010din slanja paketa od dostavljanja paketa.<br \/>\nU klasi\u010dnim sustavima razmjene poruka model \u201eto\u010dka-to\u010dka\u201c ostvaruje se putem <i>redova<\/i>. Red djeluje kao FIFO (prvi u\u0161ao, prvi iza\u0161ao) me\u0111uspremnik na koji se mogu pretplatiti jedan ili vi\u0161e potro\u0161a\u010da. Svaka poruka se isporu\u010duje samo <i>jednom od pretpla\u0107enih potro\u0161a\u010da<\/i>. Redovi obi\u010dno nastoje pravedno raspodijeliti poruke me\u0111u potro\u0161a\u010dima. Samo jedan potro\u0161a\u010d \u0107e primiti odre\u0111enu poruku.<\/p>\n<p>Na redove se primjenjuje termin \u201epouzdani\u201c (\u201edurable\u201c). <i>Pouzdanost <\/i> je svojstvo usluge koje jam\u010di da \u0107e sustav razmjene poruka zadr\u017eavati poruke u nedostatku aktivnih pretplatnika sve dok se potro\u0161a\u010d ne pretplati na red za isporuku poruka.<\/p>\n<p>Pouzdanost se \u010desto mije\u0161a s <i>perzistencijom<\/i> i, iako su ova dva pojma zamjenjiva, obavljaju razli\u010dite funkcije. Perzistencija odre\u0111uje zapisuje li sustav razmjene poruka poruku u neku vrstu pohrane izme\u0111u primanja i slanja potro\u0161a\u010du. Poruke poslane u red mogu biti ili ne moraju biti perzistentne.<br \/>\nRazmjena poruka tipa \u201eto\u010dka-to\u010dka\u201c koristi se kada upotreba zahtijeva jednokratan postupak s porukom. Kao primjer, mo\u017ee se navesti uplata na ra\u010dun ili izvr\u0161enje narud\u017ebe za dostavu. Diskutirat \u0107emo kasnije za\u0161to sustav razmjene poruka sam po sebi nije u stanju osigurati jednokratnu isporuku i za\u0161to redovi mogu u najboljem slu\u010daju osigurati jamstvo isporuke <i>barem jedanput<\/i>.<\/p>\n<h4>Objavitelj-Pretplatnik<\/h4>\n<p><\/p>\n<blockquote><p>Gabriela bira broj konferencije. Dok je povezana s konferencijom, \u010duje sve \u0161to govori govornik, zajedno s ostalim sudionicima poziva. Kada se isklju\u010di, propu\u0161ta ono \u0161to je re\u010deno. Kada se ponovno pove\u017ee, nastavlja \u010duti \u0161to se govori.<\/p><\/blockquote>\n<p> Ovo je primjer modela razmjene poruka <i>objava-pretplata<\/i>. Konferencijska veza djeluje kao mehanizam za emitiranje. Govornik se ne brine o tome koliko ljudi je trenutno povezano s pozivom \u2014 sustav jam\u010di da \u0107e svatko tko se trenutno pove\u017ee \u010duti \u0161to se govori.<br \/>\nU klasi\u010dnim sustavima razmjene poruka model razmjene poruka \u201eobjava-pretplata\u201c ostvaruje se putem <i>tema<\/i>Tema pru\u017ea isti na\u010din emitiranja kao i mehanizam konferencijske povezanosti. Kada se poruka \u0161alje u temu, raspore\u0111uje se <i>svim prijavljenim korisnicima.<\/i>.<\/p>\n<p>Teme su obi\u010dno <i>nesigurne (nondurable)<\/i>. Kao i slu\u0161atelj koji ne \u010duje \u0161to se govori na konferencijskom pozivu kada se slu\u0161atelj isklju\u010di, pretplatnici teme propu\u0161taju sve poruke koje se \u0161alju dok su offline. Iz tog razloga se mo\u017ee re\u0107i da teme pru\u017eaju garanciju dostave <i>ne vi\u0161e od jednom <\/i>za svakog potro\u0161a\u010da.<\/p>\n<p>Model razmjene poruka tipa \"objava - pretplata\" obi\u010dno se koristi kada su poruke informativnog karaktera, a gubitak jedne poruke nije posebno zna\u010dajan. Na primjer, tema mo\u017ee prenijeti o\u010ditavanja temperature od grupe senzora jednom svake sekunde. Sustav koji je zainteresiran za trenutnu temperaturu i koji se pretpla\u0107uje na temu ne\u0107e se brinuti ako propusti poruku \u2014 druga \u0107e uskoro do\u0107i.<\/p>\n<h4>Hibridni modeli<\/h4>\n<p><\/p>\n<blockquote><p>Web stranica trgovine stavlja poruke o narud\u017ebama u \"red poruka\". Glavni potro\u0161a\u010d tih poruka je izvr\u0161na sustav. Osim toga, sustav revizije treba imati kopije tih poruka o narud\u017ebama za naknadno pra\u0107enje. Oba sustava ne mogu propustiti poruke, \u010dak i ako su sama sustava neko vrijeme nedostupna. Web stranica ne bi trebala znati o drugim sustavima.<\/p><\/blockquote>\n<p> Slu\u010dajevi upotrebe \u010desto zahtijevaju kombinaciju modela razmjene poruka \"objava - pretplata\" i \"to\u010dka - to\u010dka\", na primjer, kada nekoliko sustava treba kopiju poruke, i za sprje\u010davanje gubitka poruke potrebna su i pouzdanost i postojanost.<\/p>\n<p>U tim slu\u010dajevima potreban je odredi\u0161ni (destination) (op\u0107i pojam za redove i teme) koji poruke raspore\u0111uje uglavnom kao tema, tako da se svaka poruka \u0161alje pojedina\u010dnom sustavu zainteresiranom za te poruke, ali tako\u0111er i gdje svaki sustav mo\u017ee odrediti vi\u0161e potro\u0161a\u010da koji primaju dolazne poruke, \u0161to vi\u0161e nalikuje redu. Tip \u010ditanja u ovom slu\u010daju je <i>jednom za svaku zainteresiranu stranu.<\/i>. Ovi hibridni adresati \u010desto zahtijevaju pouzdanost (durability), tako da, ako se potro\u0161a\u010d isklju\u010di, poruke koje se \u0161alju u to vrijeme primaju se nakon ponovnog povezivanja potro\u0161a\u010da.<\/p>\n<p>Hibridni modeli nisu novost i mogu se primijeniti u ve\u0107ini sustava razmjene poruka, uklju\u010duju\u0107i ActiveMQ (putem virtualnih ili sastavljenih adresata koji kombiniraju topike i redove) i Kafka (neizravno, kao temeljna osobina dizajna njenog adresata).<\/p>\n<p>Sada kada imamo neku osnovnu terminologiju i razumijevanje o \u010demu bi nam sustav razmjene poruka mogao koristiti, pre\u0111imo na detalje.<\/p>\n<p><b> Prijevod je izvr\u0161en: <noindex><a rel=\"nofollow\" href=\"http:\/\/tele.gg\/middle_java\">tele.gg\/middle_java<\/a><\/noindex><\/b><\/p>\n<p>Sljede\u0107i prevedeni dio: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466585\">Poglavlje 3. Kafka<\/a><\/noindex><\/p>\n<p><i>Nastavlja se&#8230;<\/i><br \/>\n<br \/>Izvor: <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.4 - 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\/hr\/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.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\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\/hr\/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\udd47Razumijevanje posrednika poruka. U\u010denje mehanike razmjene poruka putem ActiveMQ i Kafke. Poglavlje 1 | ProHoster","description":"Pozdrav svima! Po\u010deo sam prevoditi malu knjigu: \"Understanding Message.","canonical_url":"https:\/\/prohoster.info\/hr\/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":"hr_HR","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\/hr\/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\/hr\/wp-json\/wp\/v2\/posts\/38171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=38171"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/38171\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=38171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=38171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=38171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}