Relatorio RABBITMQ
Por: Guilherme Gonçalves • 23/7/2016 • Relatório de pesquisa • 4.663 Palavras (19 Páginas) • 389 Visualizações
UNIVERSIDADE FEDERAL DE GOIÁS – UFG
ESCOLA DE ENGENHARIA ELÉTRICA, MECÂNICA E COMPUTAÇÃO – EMC
Henrique Rocha Graciano Igor Ruschi Andrade E Lima
Pedro Artur Ferreira dos Santos Costa Raquel Carneiro Lucio
Werisson Ernesto Silva Pereira
RabbitMQ
Goiânia, 2016
Henrique Rocha Graciano Igor Ruschi Andrade E Lima
Pedro Artur Ferreira dos Santos Costa Raquel Carneiro Lucio
Werisson Ernesto Silva Pereira
RabbitMQ
Relatório técnico apresentado como requisito parcial para obtenção de aprovação na disciplina Sistemas Distribuídos 1, no Curso de Engenharia da Computação, na Universidade Federal de Goiás.
Prof. Me. Anderson Rogério Cunha
Goiânia, 2016
RESUMO
No estudo e desenvolvimento de sistemas distribuídos, ver-se que a parte da comunicação entre as máquinas é algo importantíssimo e que está totalmente ligado à eficiência final do seu sistema. A mensageria atua nesta parte da comunicação, onde deve garantir a entrega das mensagens de uma máquina para outra, juntamente com uma alta velocidade e de forma assíncrona.
O RabbitMQ é um software gerenciador de mensagens que implementa o protocolo bastante conhecido e usado AMQP. Com isso foi descrito características sobre o protocolo usado junto com o software e realizado uma aplicação simples usando o RabbitMQ e constatado a grande importância para o sistema distribuído final de se ter a parte de mensageria bem implementada.
Palavras-chave: Mensageria. Sistemas Distribuídos. RabbitMQ. AMQP.
SUMÁRIO
- INTRODUÇÃO. 4
- MENSAGERIA 5
- JMS 7
- AMQP ( Advanced Message Queuing Protocol). 8
- RABBITMQ. 10
- BREVE HISTÓRICO 10
- PONTOS IMPORTANTES DO RABBITMQ 11
- ESTUDO DE CASO. 12
- CONSTRUÇÃO DA CLASSE PRODUTOR 13
- CONSTRUÇÃO DA CLASSE RECEPTOR 14
- EXECUÇÃO DA APLICAÇÃO 14
- EXEMPLOS DA APLICAÇÃO 15
- CONCLUSÃO. 19
ANEXO AP.1 20
ANEXO AP.2 21
REFERÊNCIAS 22
INTRODUÇÃO
O desenvolvimento de sistemas distribuídos robustos como vemos hoje exigiu anos de experiência acumulada de desenvolvedores do mundo inteiro e uma série de padrões para obter uma melhor escalabilidade e interoperabilidade entre os diferentes componentes de um sistema.
A necessidade de possuir sistemas independentes que se comunicam através de mensagens com a finalidade de implementar um processo de negócio bem definido exigiu uma maneira mais eficiente de se implementar o canal de comunicação, devido a uma série de fatores, como acoplamento, ou o grau de dependência dos diferentes sistemas. O processamento das mensagens, que é a velocidade da comunicação entre as diferentes partes sistemas. Escalabilidade e extensibilidade, o funcionamento de todo o sistema quando mais partes são adicionadas e a manutenibilidade, dificuldade de manter o sistema integrado.
A comunicação de sistemas independentes sempre foi algo muito complexo, especialmente quando os elementos que precisam se comunicar não são desenvolvidos pelo mesmo fornecedor, além do grande número de informações em tempo real, que está constantemente disponível, exigir das aplicações uma maior flexibilidade para que as mensagens possam ser encaminhadas a diversos receptores de forma rápida e confiável.
Nas tentativas de desenvolvimento de um sistema distribuído muitas soluções foram implementadas, como chamadas de procedimentos a tentativa de integrar as diversas partes do sistema através de links e também o compartilhamento de arquivos. Porém cada sistema dava suporte a um formato de dados específico assim cada parte possuía um mecanismo específico para importação de dados. A conversão tornava o processo muito caro e demandava muito tempo de leitura e escrita em disco. Uma outra alternativa foi o compartilhamento de banco de dados, onde todo sistema estava ligado ao mesmo banco de dados algo que reduzia o acoplamento do sistema e ainda sim o tempo de processamento ainda era um problema.
Neste contexto surgiu-se o que é denominado mensageria. Que é uma proposta para a solução e evolução dos problemas e dilemas já mencionados e que será melhor detalhado na seção seguinte.
MENSAGERIA
Mensageria surge como solução dos problemas abordados anteriormente. Trata-se de uma tecnologia que permite comunicação de alta velocidade e de forma assíncrona entre sistemas diferentes com garantia de entrega das mensagens. É uma arquitetura flexível, fracamente acoplada onde as mensagens não são trocadas diretamente e cada componente do sistema pode ser desenvolvido de uma maneira independente, pois o envio e recebimento da mensagem é feito por um message broker, que é um gerenciador de mensagens.
Nessa arquitetura a mensagem é a unidade central da comunicação entre os sistemas, ela é composta por um cabeçalho, onde são registradas informações como codificação, roteamento e segurança. E um corpo, onde está registrada sua informação. Cada sistema elabora sua mensagem num formato adequado que é especificado pelo message broker, que é responsável por receber as diversas mensagens, codificar, validar e definir a rota de cada mensagem de acordo com que é especificado no cabeçalho da mensagem.
A arquitetura apresenta diversas vantagens, como a caso ocorra falha em alguns emissores esses serão sempre independentes e não afetarão outras partes, assim como o desempenho de uma parte não afetará a outra. Dessa maneira é possível inserir ou excluir novas partes componentes.
...