{"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\/sv\/blog\/administrirovanie\/ponimanie-brokerov-soobshhenij-izuchenie-mehaniki-obmena-soobshheniyami-posredstvom-activemq-i-kafka-glava-1","title":{"rendered":"F\u00f6rst\u00e5else av meddelandebrokers. Studera mekaniken f\u00f6r meddelandeutbyte med ActiveMQ och Kafka. Kapitel 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hej alla!<\/p>\n<p>Har b\u00f6rjat \u00f6vers\u00e4tta en liten bok:<br \/>\n\u00ab<b><noindex><a rel=\"nofollow\" href=\"https:\/\/www.oreilly.com\/library\/view\/understanding-message-brokers\/9781492049296\/\">F\u00f6rst\u00e5else f\u00f6r meddelandebrokers<\/a><\/noindex><\/b>&#171;, <br \/>\nf\u00f6rfattare: Jakub Korab, f\u00f6rlag: O'Reilly Media, Inc., utgivningsdatum: juni 2017, ISBN: 9781492049296.<\/p>\n<p>Fr\u00e5n inledningen till boken:<br \/>\n&#171;\u2026 <i>Denna bok l\u00e4r dig att t\u00e4nka kring system f\u00f6r meddelandeutbyte med brokers, genom att j\u00e4mf\u00f6ra och kontrastera tv\u00e5 popul\u00e4ra brokerteknologier: Apache ActiveMQ och Apache Kafka. H\u00e4r kommer exempel p\u00e5 anv\u00e4ndning och utvecklingsincitament som f\u00f6rde till att deras utvecklare anv\u00e4nde helt olika angreppss\u00e4tt inom samma omr\u00e5de - meddelandeutbyte mellan system med en mellanhand broker. Vi kommer att granska dessa teknologier fr\u00e5n grunden och lyfta fram p\u00e5verkan av olika designalternativ p\u00e5 denna v\u00e4g. Du kommer att f\u00e5 en djup f\u00f6rst\u00e5else f\u00f6r b\u00e5da produkterna, insikt om hur de b\u00f6r och inte b\u00f6r anv\u00e4ndas, och kunskap om vad du b\u00f6r t\u00e4nka p\u00e5 n\u00e4r du \u00f6verv\u00e4ger andra meddelandeutbyte teknologier i framtiden.<\/i> &#8230;&#187;<\/p>\n<p>\u00d6versatta delar hittills:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466385\">Kapitel 1. Inledning<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466585\">Kapitel 3. Kafka<\/a><\/noindex><\/p>\n<p>Jag kommer att publicera f\u00e4rdiga kapitel i takt med \u00f6vers\u00e4ttningen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>KAPITEL 1<\/h2>\n<p><\/p>\n<h2>Introduktion<\/h2>\n<p>\nMeddelandeutbyte mellan system \u00e4r ett av de minst f\u00f6rst\u00e5dda omr\u00e5dena inom IT. Som utvecklare eller arkitekt kan du vara v\u00e4l f\u00f6rtrogen med olika ramverk och databaser. Men det \u00e4r helt m\u00f6jligt att du har bara en ytlig f\u00f6rst\u00e5else f\u00f6r hur broker-baserade meddelandeteknologier fungerar. Om du k\u00e4nner igen dig i detta, oroa dig inte, du \u00e4r i gott s\u00e4llskap.<\/p>\n<p>M\u00e4nniskor interagerar vanligtvis med meddelandeinfrastruktur p\u00e5 ett mycket begr\u00e4nsat s\u00e4tt. Ofta ansluter de till ett system som skapades f\u00f6r l\u00e4nge sedan, eller laddar ner en distribution fr\u00e5n n\u00e4tet, installerar den i produktion och b\u00f6rjar skriva kod f\u00f6r den. N\u00e4r infrastrukturen s\u00e4tts i produktion kan resultaten vara oklara: meddelande f\u00f6rloras vid fel, meddelandeutskick fungerar inte som du f\u00f6rv\u00e4ntade dig, eller brokers \"h\u00e4ngde\" dina producenter eller skickar inte meddelanden till dina konsumenter.<\/p>\n<p>K\u00e4nns det bekant?<\/p>\n<p>Ett vanligt scenario \u00e4r att din meddelandeutbyteskod fungerar bra, tills den pl\u00f6tsligt slutar fungera. Denna period av framg\u00e5ng skapar en falsk k\u00e4nsla av s\u00e4kerhet, vilket leder till mer kod baserad p\u00e5 missuppfattningar om teknikens grundl\u00e4ggande beteende. N\u00e4r n\u00e5got b\u00f6rjar g\u00e5 fel konfronteras du med den obekv\u00e4ma sanningen: att du faktiskt inte f\u00f6rstod produktens grundl\u00e4ggande beteende eller de kompromisser som gjordes av f\u00f6rfattarna, till exempel prestanda kontra tillf\u00f6rlitlighet, eller transaktionalitet kontra horisontell skalbarhet.<\/p>\n<p>Utan en djup f\u00f6rst\u00e5else f\u00f6r hur m\u00e4klare fungerar, g\u00f6r m\u00e4nniskor, till synes, rimliga p\u00e5st\u00e5enden om sina meddelandeutbyten, s\u00e5som:<\/p>\n<ul>\n<li>Systemet kommer aldrig att f\u00f6rlora meddelanden<\/li>\n<li>Meddelanden kommer att behandlas i ordning<\/li>\n<li>Att l\u00e4gga till konsumenter kommer att g\u00f6ra systemet snabbare<\/li>\n<li>Meddelanden kommer att levereras endast en g\u00e5ng<\/li>\n<\/ul>\n<p>\nTyv\u00e4rr baseras vissa av dessa p\u00e5st\u00e5enden p\u00e5 antaganden som endast g\u00e4ller under vissa omst\u00e4ndigheter, medan andra \u00e4r helt enkelt felaktiga.<\/p>\n<p>Denna bok kommer att l\u00e4ra dig att resonera kring m\u00e4klardrivna meddelandeutbyten genom att j\u00e4mf\u00f6ra och kontrastera tv\u00e5 popul\u00e4ra m\u00e4klarteknologier: Apache ActiveMQ och Apache Kafka. H\u00e4r presenteras anv\u00e4ndningsfall och utvecklingsincitament som lett till att deras utvecklare anv\u00e4nde helt olika angreppss\u00e4tt inom samma omr\u00e5de \u2013 meddelandeutbyte mellan system med en mellanliggande m\u00e4klare. Vi kommer att utforska dessa teknologier fr\u00e5n grunden och belysa hur olika designalternativ p\u00e5verkar dem p\u00e5 denna resa. Du f\u00e5r en djup f\u00f6rst\u00e5else f\u00f6r b\u00e5da produkterna, insikt om hur de b\u00f6r och inte b\u00f6r anv\u00e4ndas, samt vad du ska t\u00e4nka p\u00e5 n\u00e4r du \u00f6verv\u00e4ger andra meddelandeteknologier i framtiden.<\/p>\n<p>Innan vi b\u00f6rjar, l\u00e5t oss g\u00e5 igenom grunderna.<\/p>\n<h3>Vad \u00e4r ett meddelandeutbydessystem och varf\u00f6r beh\u00f6vs det?<\/h3>\n<p>\nF\u00f6r att tv\u00e5 applikationer ska kunna kommunicera med varandra m\u00e5ste de f\u00f6rst definiera ett gr\u00e4nssnitt. Definitionen av detta gr\u00e4nssnitt involverar att v\u00e4lja transport eller protokoll, som HTTP, MQTT eller SMTP, och att komma \u00f6verens om meddelandeformaten som systemen kommer att utbyta. Detta kan vara en strikt process, s\u00e5som att definiera ett XML-schema med krav p\u00e5 nyttolastspecifikationer (payload) f\u00f6r meddelandet, eller det kan vara mycket mindre formellt, som ett avtal mellan tv\u00e5 utvecklare om att en viss del av HTTP-f\u00f6rfr\u00e5gan kommer att inneh\u00e5lla klientens ID.<\/p>\n<p>S\u00e5 l\u00e4nge meddelandeformatet och ordningen f\u00f6r att skicka dem mellan systemen \u00e4r \u00f6verenskomna, kommer de att kunna interagera med varandra utan att beh\u00f6va bry sig om implementationen av det andra systemet. Insidan av dessa system, s\u00e5som programmeringsspr\u00e5ket eller den anv\u00e4nda ramverket, kan f\u00f6r\u00e4ndras \u00f6ver tid. S\u00e5 l\u00e4nge kontraktet som helhet uppr\u00e4tth\u00e5lls kan interaktionen forts\u00e4tta utan f\u00f6r\u00e4ndringar fr\u00e5n den andra sidan. Dessa tv\u00e5 system \u00e4r effektivt isolerade (separatorer) av detta gr\u00e4nssnitt.<\/p>\n<p>Meddelandesystem involverar vanligtvis en mellanhand mellan tv\u00e5 system som kommunicerar, vilket ytterligare isolerar avs\u00e4ndaren fr\u00e5n mottagaren eller mottagarna. Genom detta m\u00f6jligg\u00f6r meddelandesystemet f\u00f6r avs\u00e4ndaren att skicka ett meddelande utan att beh\u00f6va veta var mottagaren befinner sig, om de \u00e4r aktiva eller hur m\u00e5nga instanser av dem som finns.<\/p>\n<p>L\u00e5t oss betrakta ett par analogier f\u00f6r de olika problem som ett meddelandesystem l\u00f6ser och introducera n\u00e5gra grundl\u00e4ggande termer.<\/p>\n<h4>Point-to-Point<\/h4>\n<p><\/p>\n<blockquote><p>Alexandra g\u00e5r till postkontoret f\u00f6r att skicka ett paket till Adam. Hon g\u00e5r fram till disken och \u00f6verl\u00e4mnar paketet till medarbetaren. Medarbetaren tar emot paketet och ger Alexandra en kvittens. Adam beh\u00f6ver inte vara hemma vid tidpunkten f\u00f6r paketets s\u00e4ndning. Alexandra \u00e4r s\u00e4ker p\u00e5 att paketet kommer att levereras till Adam vid n\u00e5got tillf\u00e4lle i framtiden och kan forts\u00e4tta med sina sysslor. Senare, vid n\u00e5got tillf\u00e4lle, f\u00e5r Adam paketet.<\/p><\/blockquote>\n<p>Detta \u00e4r ett exempel p\u00e5 en meddelandeutbytesmodell <i>punkt-till-punkt<\/i>. Postkontoret fungerar h\u00e4r som en distributionsmekanism f\u00f6r paket och s\u00e4kerst\u00e4ller att varje paket levereras en g\u00e5ng. Anv\u00e4ndningen av postkontoret separerar akt av s\u00e4ndningen av paketet fr\u00e5n leveransen av paketet.<br \/>\nI klassiska meddelandesystem implementeras modellen \"punkt-till-punkt\" genom <i>ordning<\/i>. En k\u00f6 fungerar som en FIFO-buffert (f\u00f6rst in, f\u00f6rst ut), som kan prenumereras av en eller flera konsumenter. Varje meddelande levereras endast <i>till en av de prenumererade konsumenterna<\/i>. K\u00f6er f\u00f6rs\u00f6ker vanligtvis r\u00e4ttvist f\u00f6rdela meddelanden mellan konsumenterna. Endast en konsument f\u00e5r detta meddelande.<\/p>\n<p>Till k\u00f6er till\u00e4mpas termen \"p\u00e5litliga\" (\"durable\"). <i>P\u00e5litlighet <\/i> \u2014 detta \u00e4r en egenskap hos tj\u00e4nsten som garanterar att meddelandesystemet kommer att spara meddelanden n\u00e4r det inte finns n\u00e5gra aktiva prenumeranter, fram till dess att konsumenten prenumererar p\u00e5 k\u00f6n f\u00f6r att ta emot meddelanden.<\/p>\n<p>P\u00e5litlighet blandas ofta ihop med <i>persistens<\/i> och, \u00e4ven om dessa tv\u00e5 termer \u00e4r utbytbara, utf\u00f6r de olika funktioner. Persistens definierar om meddelandet sparas av meddelandesystemet i n\u00e5got slags lagring mellan mottagandet och leveransen till konsumenten. Meddelanden som skickas till en k\u00f6 kan vara eller inte vara persistenta.<br \/>\nMeddelandetypen \"Punkt-till-punkt\" anv\u00e4nds n\u00e4r anv\u00e4ndningsfallet kr\u00e4ver en eng\u00e5ngshandling med meddelandet. Ett exempel kan vara att s\u00e4tta in medel p\u00e5 ett konto eller l\u00e4gga en best\u00e4llning f\u00f6r leverans. Vi kommer att diskutera senare varf\u00f6r meddelandesystemet i sig inte kan s\u00e4kerst\u00e4lla en eng\u00e5ngsleverans och varf\u00f6r k\u00f6er i b\u00e4sta fall kan garantera att meddelandet levereras <i>\u00e5tminstone en g\u00e5ng<\/i>.<\/p>\n<h4>Publicerare-Prenumerant<\/h4>\n<p><\/p>\n<blockquote><p>Gabriella ringer konferensnumret. S\u00e5 l\u00e4nge hon \u00e4r ansluten till konferensen h\u00f6r hon allt vad talaren s\u00e4ger tillsammans med de andra deltagarna i samtalet. N\u00e4r hon kopplar bort missar hon det som s\u00e4gs. Vid \u00e5teranslutning forts\u00e4tter hon att h\u00f6ra vad som s\u00e4gs.<\/p><\/blockquote>\n<p> Detta \u00e4r ett exempel p\u00e5 en meddelandeutbytesmodell <i>publikation-prenumeration<\/i>. Konferenssamtal fungerar som en s\u00e4ndningsmekanism. Den talande personen bryr sig inte om hur m\u00e5nga m\u00e4nniskor som f\u00f6r n\u00e4rvarande har anslutit sig till samtalet \u2014 systemet garanterar att alla som \u00e4r anslutna just nu h\u00f6r vad som s\u00e4gs.<br \/>\nI klassiska meddelandesystem implementeras meddelandemodellen \"publikation-prenumeration\" genom <i>\u00e4mnen<\/i>\u00c4mnet tillhandah\u00e5ller samma s\u00e4tt att s\u00e4nda som konferenssamtalsmekanismen. N\u00e4r ett meddelande skickas till \u00e4mnet f\u00f6rdelas det <i>till alla prenumererande anv\u00e4ndare.<\/i>.<\/p>\n<p>\u00c4mnen \u00e4r vanligtvis <i>op\u00e5litliga (nondurable)<\/i>. Precis som en lyssnare som inte h\u00f6r vad som s\u00e4gs under konferenssamtalet n\u00e4r lyssnaren kopplar bort sig, missar prenumeranter p\u00e5 \u00e4mnet alla meddelanden som skickas vid den tidpunkt de \u00e4r offline. Av denna anledning kan man s\u00e4ga att \u00e4mnen ger leveransgaranti <i>h\u00f6gst en g\u00e5ng <\/i>f\u00f6r varje konsument.<\/p>\n<p>Meddelandetypen \"publicera-prenumerera\" anv\u00e4nds vanligtvis n\u00e4r meddelandena \u00e4r informativa och f\u00f6rlusten av ett meddelande inte \u00e4r av stor betydelse. Till exempel kan ett \u00e4mne skicka temperaturavl\u00e4sningar fr\u00e5n en grupp sensorer en g\u00e5ng per sekund. Ett system som \u00e4r intresserat av den aktuella temperaturen och prenumererar p\u00e5 \u00e4mnet kommer inte att oroa sig f\u00f6r att misslyckas med att ta emot ett meddelande - ett annat kommer att komma snart.<\/p>\n<h4>Hybridmodeller<\/h4>\n<p><\/p>\n<blockquote><p>En webbplats f\u00f6r en butik placerar meddelanden om best\u00e4llningar i en \"meddelandek\u00f6\". Den prim\u00e4ra konsumenten av dessa meddelanden \u00e4r exekveringssystemet. Dessutom m\u00e5ste revisionssystemet ha kopior av dessa best\u00e4llningsmeddelanden f\u00f6r framtida sp\u00e5rning. B\u00e5da systemen f\u00e5r inte missa meddelanden, \u00e4ven om sj\u00e4lva systemen \u00e4r otillg\u00e4ngliga under en tid. Webbplatsen ska inte beh\u00f6va veta om andra system.<\/p><\/blockquote>\n<p> Anv\u00e4ndningsfall kr\u00e4ver ofta kombinationen av meddelandeutbytena \"publicera-prenumerera\" och \"punkt-till-punkt\", till exempel n\u00e4r flera system beh\u00f6ver en kopia av meddelandet och som kr\u00e4ver b\u00e5de tillf\u00f6rlitlighet och best\u00e4ndighet f\u00f6r att f\u00f6rhindra f\u00f6rlust av meddelanden.<\/p>\n<p>I dessa fall kr\u00e4vs en mottagare (destination) (ett gemensamt begrepp f\u00f6r k\u00f6er och \u00e4mnen) som distribuerar meddelanden i huvudsak som ett \u00e4mne, s\u00e5 att varje meddelande skickas till ett separat system som \u00e4r intresserad av dessa meddelanden, men som ocks\u00e5 kan ha flera konsumenter som mottar de inkommande meddelandena, vilket mer liknar en k\u00f6. L\u00e4sningstypen i detta fall \u00e4r <i>en g\u00e5ng f\u00f6r varje intresserad part.<\/i>Dessa hybrida adresser kr\u00e4ver ofta p\u00e5litlighet, s\u00e5 om konsumenten kopplar ner, tas meddelandena som skickas under den tiden emot efter att konsumenten \u00e5teranslutit.<\/p>\n<p>Hybrida modeller \u00e4r inte nya och kan till\u00e4mpas i de flesta meddelandesystem, inklusive b\u00e5de ActiveMQ (genom virtuella eller sammansatta adresser som kombinerar \u00e4mnen och k\u00f6er) och Kafka (implicit, som en grundl\u00e4ggande egenskap i designen av dess adresser).<\/p>\n<p>Nu n\u00e4r vi har lite grundl\u00e4ggande terminologi och f\u00f6rst\u00e5else f\u00f6r vad ett meddelandesystem kan vara bra f\u00f6r, l\u00e5t oss g\u00e5 vidare till detaljerna.<\/p>\n<p><b> \u00d6vers\u00e4ttning utf\u00f6rd av: <noindex><a rel=\"nofollow\" href=\"http:\/\/tele.gg\/middle_java\">tele.gg\/middle_java<\/a><\/noindex><\/b><\/p>\n<p>N\u00e4sta \u00f6versatta del: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466585\">Kapitel 3. Kafka<\/a><\/noindex><\/p>\n<p><i>Forts\u00e4ttning f\u00f6ljer\u2026<\/i><br \/>\n<br \/>K\u00e4lla: <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\/sv\/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=\"sv_SE\" \/>\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\/sv\/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\udd47F\u00f6rst\u00e5else av meddelandebrokers. Studera mekaniken i meddelandeutbyte via ActiveMQ och Kafka. Kapitel 1 | ProHoster","description":"Hej allihop! Jag har b\u00f6rjat \u00f6vers\u00e4tta en liten bok: \"Understanding Message.","canonical_url":"https:\/\/prohoster.info\/sv\/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":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/38171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=38171"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/38171\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=38171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=38171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=38171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}