{"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\/pt\/blog\/administrirovanie\/ponimanie-brokerov-soobshhenij-izuchenie-mehaniki-obmena-soobshheniyami-posredstvom-activemq-i-kafka-glava-1","title":{"rendered":"Compreendendo Brokers de Mensagens. Estudando a mec\u00e2nica do interc\u00e2mbio de mensagens com ActiveMQ e Kafka. Cap\u00edtulo 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ol\u00e1 a todos!<\/p>\n<p>Iniciei a tradu\u00e7\u00e3o de um pequeno livro:<br \/>\n\u00ab<b><noindex><a rel=\"nofollow\" href=\"https:\/\/www.oreilly.com\/library\/view\/understanding-message-brokers\/9781492049296\/\">Entendendo Brokers de Mensagens<\/a><\/noindex><\/b>\u00ab, <br \/>\nautor: Jakub Korab, editora: O'Reilly Media, Inc., data de publica\u00e7\u00e3o: junho de 2017, ISBN: 9781492049296.<\/p>\n<p>Do pref\u00e1cio do livro:<br \/>\n\u00ab\u2026 <i>Este livro ensinar\u00e1 voc\u00ea a pensar sobre sistemas de troca de mensagens em brokers, comparando e contrastando duas tecnologias populares de brokers: Apache ActiveMQ e Apache Kafka. Ser\u00e3o apresentados exemplos de uso e motivos de desenvolvimento que levaram seus criadores a adotar abordagens completamente diferentes para a mesma \u00e1rea \u2014 a troca de mensagens entre sistemas com um broker intermedi\u00e1rio. Vamos explorar essas tecnologias desde o in\u00edcio e destacar a influ\u00eancia de diversas op\u00e7\u00f5es de design ao longo desse caminho. Voc\u00ea obter\u00e1 uma compreens\u00e3o profunda de ambos os produtos, saber\u00e1 como utiliz\u00e1-los e como n\u00e3o utiliz\u00e1-los, e entender\u00e1 o que deve ser considerado ao avaliar outras tecnologias de troca de mensagens no futuro.<\/i> \u2026\u00bb<\/p>\n<p>Partes traduzidas at\u00e9 o momento:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466385\">Cap\u00edtulo 1. Introdu\u00e7\u00e3o<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466585\">Cap\u00edtulo 3. Kafka<\/a><\/noindex><\/p>\n<p>Publicarei os cap\u00edtulos finalizados \u00e0 medida que forem traduzidos.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>CAP\u00cdTULO 1<\/h2>\n<p><\/p>\n<h2>Introdu\u00e7\u00e3o<\/h2>\n<p>\nA troca de mensagens entre sistemas \u00e9 uma das \u00e1reas menos compreendidas da TI. Como desenvolvedor ou arquiteto, voc\u00ea pode estar bem familiarizado com diferentes frameworks e bancos de dados. No entanto, \u00e9 bastante prov\u00e1vel que voc\u00ea tenha apenas um conhecimento superficial sobre como funcionam as tecnologias de troca de mensagens baseadas em brokers. Se voc\u00ea se sente assim, n\u00e3o se preocupe, voc\u00ea n\u00e3o est\u00e1 sozinho.<\/p>\n<p>As pessoas geralmente interagem com a infraestrutura de troca de mensagens de maneira muito limitada. Muitas vezes, elas se conectam a um sistema criado h\u00e1 muito tempo ou baixam uma distribui\u00e7\u00e3o da internet, a instalam em produ\u00e7\u00e3o e come\u00e7am a escrever c\u00f3digo para ele. Depois que a infraestrutura \u00e9 implantada em produ\u00e7\u00e3o, os resultados podem ser amb\u00edguos: perda de mensagens em caso de falhas, o envio n\u00e3o funciona como esperado ou os brokers 'penduram' seus produtores ou n\u00e3o enviam mensagens para seus consumidores.<\/p>\n<p>Soa familiar?<\/p>\n<p>Um cen\u00e1rio comum \u00e9 que seu c\u00f3digo de troca de mensagens funciona bem, at\u00e9 que, de repente, para de funcionar. Esse per\u00edodo cria uma falsa sensa\u00e7\u00e3o de seguran\u00e7a, levando a um c\u00f3digo ainda mais amplo, baseado em representa\u00e7\u00f5es incorretas do comportamento fundamental da tecnologia. Quando algo come\u00e7a a dar errado, voc\u00ea se depara com a desconfort\u00e1vel verdade: que voc\u00ea realmente n\u00e3o entendeu o comportamento b\u00e1sico do produto ou os compromissos escolhidos pelos autores, como desempenho contra confiabilidade, ou transacionalidade contra escalabilidade horizontal.<\/p>\n<p>Sem uma compreens\u00e3o profunda de como os brokers funcionam, as pessoas fazem afirma\u00e7\u00f5es que parecem razo\u00e1veis sobre seus sistemas de troca de mensagens, como:<\/p>\n<ul>\n<li>O sistema nunca perder\u00e1 mensagens<\/li>\n<li>As mensagens ser\u00e3o processadas de forma sequencial<\/li>\n<li>Adicionar consumidores tornar\u00e1 o sistema mais r\u00e1pido<\/li>\n<li>As mensagens ser\u00e3o entregues apenas uma vez<\/li>\n<\/ul>\n<p>\nInfelizmente, algumas dessas afirma\u00e7\u00f5es s\u00e3o baseadas em suposi\u00e7\u00f5es que se aplicam apenas sob certas circunst\u00e2ncias, enquanto outras s\u00e3o simplesmente falsas.<\/p>\n<p>Este livro ensinar\u00e1 voc\u00ea a pensar sobre sistemas de troca de mensagens baseados em brokers, comparando e contrastando duas tecnologias populares de brokers: Apache ActiveMQ e Apache Kafka. Exemplos de uso e incentivos para o desenvolvimento que levaram seus criadores a adotarem abordagens completamente diferentes para a mesma \u00e1rea \u2014 a troca de mensagens entre sistemas com um broker intermedi\u00e1rio \u2014 ser\u00e3o apresentados. Analisaremos essas tecnologias desde o in\u00edcio e destacaremos a influ\u00eancia de diferentes op\u00e7\u00f5es de design ao longo do caminho. Voc\u00ea obter\u00e1 uma compreens\u00e3o profunda de ambos os produtos, conhecimento sobre como devem e n\u00e3o devem ser usados, e no que prestar aten\u00e7\u00e3o ao considerar outras tecnologias de troca de mensagens no futuro.<\/p>\n<p>Antes de come\u00e7armos, vamos revisar os fundamentos.<\/p>\n<h3>O que \u00e9 um Sistema de troca de mensagens e por que ele \u00e9 necess\u00e1rio<\/h3>\n<p>\nPara que dois aplicativos possam se comunicar, eles devem primeiro definir uma interface. A defini\u00e7\u00e3o dessa interface inclui a escolha de um transporte ou protocolo, como HTTP, MQTT ou SMTP, e o acordo sobre os formatos de mensagem que os sistemas trocar\u00e3o. Isso pode ser um processo rigoroso, como a defini\u00e7\u00e3o de um esquema XML com requisitos para a carga \u00fatil da mensagem, ou pode ser muito menos formal, como um acordo entre dois desenvolvedores sobre qual parte da solicita\u00e7\u00e3o HTTP conter\u00e1 o identificador do cliente.<\/p>\n<p>Desde que o formato das mensagens e a ordem de envio entre os sistemas estejam acordados, eles poder\u00e3o interagir entre si sem se preocupar com a implementa\u00e7\u00e3o do outro sistema. Os detalhes internos desses sistemas, como a linguagem de programa\u00e7\u00e3o ou o framework utilizado, podem mudar ao longo do tempo. Enquanto o pr\u00f3prio contrato for mantido, a intera\u00e7\u00e3o pode continuar sem altera\u00e7\u00f5es do outro lado. Esses dois sistemas est\u00e3o efetivamente desacoplados por meio dessa interface.<\/p>\n<p>Sistemas de troca de mensagens geralmente envolvem um intermedi\u00e1rio entre dois sistemas que interagem, para um maior desacoplamento do remetente dos destinat\u00e1rios. Assim, o sistema de troca de mensagens permite que o remetente envie uma mensagem sem saber onde o destinat\u00e1rio est\u00e1, se ele est\u00e1 ativo ou quantas inst\u00e2ncias existem.<\/p>\n<p>Vamos considerar algumas analogias que ilustram os tipos de problemas que um sistema de troca de mensagens resolve e introduzir alguns termos b\u00e1sicos.<\/p>\n<h4>Ponto a Ponto<\/h4>\n<p><\/p>\n<blockquote><p>Alexandra vai ao correio para enviar um pacote para Adam. Ela se aproxima da janela e entrega o pacote ao funcion\u00e1rio. O funcion\u00e1rio pega o pacote e entrega a Alexandra um recibo. Adam n\u00e3o precisa estar em casa no momento da postagem do pacote. Alexandra tem certeza de que o pacote ser\u00e1 entregue a Adam em algum momento no futuro e pode continuar com suas atividades. Mais tarde, a qualquer momento, Adam recebe o pacote.<\/p><\/blockquote>\n<p>Este \u00e9 um exemplo de um modelo de troca de mensagens <i>ponto a ponto<\/i>. O correio aqui atua como um mecanismo de distribui\u00e7\u00e3o de pacotes, garantindo que cada pacote seja entregue uma vez. O uso do correio separa o ato de enviar o pacote da entrega do pacote.<br \/>\nEm sistemas cl\u00e1ssicos de troca de mensagens, o modelo \"ponto a ponto\" \u00e9 implementado por meio de <i>filas<\/i>. A fila atua como um buffer FIFO (primeiro a entrar, primeiro a sair), ao qual um ou v\u00e1rios consumidores podem se inscrever. Cada mensagem \u00e9 entregue apenas <i>a um dos consumidores inscritos<\/i>. As filas geralmente tentam distribuir as mensagens de forma justa entre os consumidores. Somente um consumidor receber\u00e1 a mensagem em quest\u00e3o.<\/p>\n<p>Ao conceito de filas se aplica o termo \"dur\u00e1veis\". <i>Confiabilidade <\/i> \u2014 \u00e9 uma propriedade do servi\u00e7o que garante que o sistema de troca de mensagens ir\u00e1 armazenar mensagens na aus\u00eancia de consumidores ativos, at\u00e9 que um consumidor se inscreva na fila para receber as mensagens.<\/p>\n<p>A confiabilidade \u00e9 frequentemente confundida com <i>persist\u00eancia<\/i> , e embora esses dois termos sejam intercambi\u00e1veis, eles cumprem fun\u00e7\u00f5es diferentes. A persist\u00eancia define se a mensagem \u00e9 gravada pelo sistema de troca de mensagens em algum tipo de armazenamento entre seu recebimento e seu envio ao consumidor. Mensagens enviadas para uma fila podem ou n\u00e3o ser persistentes.<br \/>\nA troca de mensagens do tipo \"Ponto a Ponto\" \u00e9 usada quando o caso de uso exige uma \u00fanica a\u00e7\u00e3o sobre a mensagem. Um exemplo disso seria a adi\u00e7\u00e3o de fundos a uma conta ou a realiza\u00e7\u00e3o de um pedido de entrega. Discutiremos mais adiante por que o pr\u00f3prio sistema de troca de mensagens n\u00e3o consegue garantir uma entrega \u00fanica e por que as filas podem, no melhor dos casos, oferecer uma garantia de entrega <i>pelo menos uma vez<\/i>.<\/p>\n<h4>Publicador-Inscritor<\/h4>\n<p><\/p>\n<blockquote><p>Gabriela disca o n\u00famero da confer\u00eancia. Enquanto est\u00e1 conectada \u00e0 confer\u00eancia, ela ouve tudo o que o palestrante diz, junto com os demais participantes da chamada. Quando ela se desconecta, perde o que foi dito. Ao se reconectar, ela continua a ouvir o que est\u00e1 sendo dito.<\/p><\/blockquote>\n<p> Este \u00e9 um exemplo de um modelo de troca de mensagens <i>publica\u00e7\u00e3o-assinatura<\/i>. A confer\u00eancia atua como um mecanismo de difus\u00e3o. O falante n\u00e3o se preocupa com quantas pessoas est\u00e3o atualmente conectadas \u00e0 chamada \u2014 o sistema garante que qualquer um que se conecte nesse momento ouvir\u00e1 o que est\u00e1 sendo dito.<br \/>\nEm sistemas cl\u00e1ssicos de troca de mensagens, o modelo de troca de mensagens \"publica\u00e7\u00e3o-assinatura\" \u00e9 implementado atrav\u00e9s de <i>t\u00f3picos<\/i>O t\u00f3pico fornece uma forma de broadcast semelhante ao mecanismo de confer\u00eancia. Quando uma mensagem \u00e9 enviada para o t\u00f3pico, ela \u00e9 distribu\u00edda <i>para todos os usu\u00e1rios inscritos<\/i>.<\/p>\n<p>T\u00f3picos normalmente <i>s\u00e3o n\u00e3o confi\u00e1veis (nondurable)<\/i>. Assim como um ouvinte que n\u00e3o escuta o que est\u00e1 sendo dito em uma chamada de confer\u00eancia quando se desconecta, os assinantes do t\u00f3pico perdem quaisquer mensagens enviadas no momento em que est\u00e3o offline. Por essa raz\u00e3o, pode-se dizer que os t\u00f3picos oferecem garantia de entrega <i>n\u00e3o mais de uma vez <\/i>para cada consumidor.<\/p>\n<p>As mensagens do tipo \u2018publica\u00e7\u00e3o-assinatura\u2019 s\u00e3o geralmente usadas quando as mensagens t\u00eam um car\u00e1ter informativo, e a perda de uma mensagem n\u00e3o \u00e9 particularmente significativa. Por exemplo, um t\u00f3pico pode transmitir leituras de temperatura de um grupo de sensores uma vez por segundo. O sistema que est\u00e1 interessado na temperatura atual e que se inscreve no t\u00f3pico n\u00e3o se preocupar\u00e1 se perder uma mensagem \u2014 outra chegar\u00e1 em breve.<\/p>\n<h4>Modelos h\u00edbridos<\/h4>\n<p><\/p>\n<blockquote><p>O site da loja coloca mensagens de pedidos em uma \u2018fila de mensagens\u2019. O principal consumidor dessas mensagens \u00e9 o sistema executor. Al\u00e9m disso, o sistema de auditoria deve ter c\u00f3pias dessas mensagens de pedidos para rastreamento posterior. Ambos os sistemas n\u00e3o podem perder mensagens, mesmo que os pr\u00f3prios sistemas estejam indispon\u00edveis por um tempo. O site n\u00e3o deve saber sobre outros sistemas.<\/p><\/blockquote>\n<p> Cen\u00e1rios de uso frequentemente requerem a combina\u00e7\u00e3o dos modelos de troca de mensagens \u2018publica\u00e7\u00e3o-assinatura\u2019 e \u2018ponto a ponto\u2019, por exemplo, quando v\u00e1rios sistemas precisam de uma c\u00f3pia da mensagem, e para evitar a perda da mensagem s\u00e3o necess\u00e1rias tanto a confiabilidade quanto a persist\u00eancia.<\/p>\n<p>Nesses casos, \u00e9 necess\u00e1rio um destinat\u00e1rio (destination) (termo gen\u00e9rico para filas e t\u00f3picos), que distribui as mensagens principalmente como um t\u00f3pico, de modo que cada mensagem \u00e9 enviada para um sistema separado interessado nessas mensagens, mas tamb\u00e9m onde cada sistema pode definir v\u00e1rios consumidores que recebem as mensagens entrantes, que se assemelham mais a uma fila. O tipo de leitura, nesse caso, \u00e9 <i>uma vez para cada parte interessada<\/i>Esses endere\u00e7os h\u00edbridos frequentemente exigem confiabilidade, ent\u00e3o, se o consumidor se desconectar, as mensagens enviadas nesse momento ser\u00e3o recebidas ap\u00f3s a reconex\u00e3o do consumidor.<\/p>\n<p>Modelos h\u00edbridos n\u00e3o s\u00e3o novos e podem ser aplicados na maioria dos sistemas de troca de mensagens, incluindo tanto ActiveMQ (atrav\u00e9s de endere\u00e7os virtuais ou compostos, que combinam t\u00f3picos e filas), quanto Kafka (implicitamente, como uma propriedade fundamental do design de seu destinat\u00e1rio).<\/p>\n<p>Agora que temos alguma terminologia b\u00e1sica e uma compreens\u00e3o do prop\u00f3sito de um sistema de troca de mensagens, vamos passar para os detalhes.<\/p>\n<p><b> Tradu\u00e7\u00e3o realizada: <noindex><a rel=\"nofollow\" href=\"http:\/\/tele.gg\/middle_java\">tele.gg\/middle_java<\/a><\/noindex><\/b><\/p>\n<p>A pr\u00f3xima parte traduzida: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466585\">Cap\u00edtulo 3. Kafka<\/a><\/noindex><\/p>\n<p><i>Continua\u2026<\/i><br \/>\n<br \/>Fonte: <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\/pt\/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=\"pt_PT\" \/>\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\/pt\/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\udd47Compreendendo os corretores de mensagens. Explorando a mec\u00e2nica da troca de mensagens usando ActiveMQ e Kafka. Cap\u00edtulo 1 | ProHoster","description":"Ol\u00e1 a todos! Comecei a traduzir um pequeno livro: \"Understanding Message.","canonical_url":"https:\/\/prohoster.info\/pt\/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":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/38171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=38171"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/38171\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=38171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=38171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=38171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}