Não escrevo a bota de primavera há muito tempo. Por acaso, escrevi o Spring Cloud Bus recentemente. Como o conteúdo terá alguma relevância, adicionarei uma postagem sobre a integração do AMQP.
Introdução ao corretor de mensagens e AMQP
O corretor de mensagens é um modelo arquitetônico para verificação, transmissão e roteamento de mensagens. Seus objetivos de design são usados principalmente nos seguintes cenários:
O AMQP é a abreviação do protocolo de fila de mensagens avançado, um protocolo de camada de aplicativo padrão para middleware de mensagem. O AMQP define esses recursos:
RabbitMQ
O RabbitMQ que deve ser introduzido neste artigo é um produto de middleware implementado com o protocolo AMQP. Ele pode suportar vários sistemas operacionais e várias linguagens de programação e pode cobrir quase todas as plataformas de tecnologia em nível de empresa.
Instalar
Na página de download do site oficial do RabbitMQ https://www.rabbitmq.com/download.html, podemos obter pacotes de instalação e instruções para vários sistemas operacionais. Aqui, explicaremos várias plataformas comumente usadas uma a uma.
A seguir, são apresentadas as descrições de versão do servidor Erlang e RabbitMQ que usamos:
Instalação do Windows
Instale o Erland, obtenha o pacote de instalação exe na página de download oficial http://www.erlang.org/downloads, abra diretamente e preencha a instalação.
Instale o RabbitMQ e obtenha o pacote de instalação do EXE na página de download oficial https://www.rabbitmq.com/download.html.
Após a conclusão do download, execute o instalador diretamente.
Após a instalação do servidor RabbitMQ, ele se registrará automaticamente como um serviço e começará com a configuração padrão.
Mac OS X Instalação
Usando a ferramenta Brew no Mac OS X pode instalar facilmente o RabbitMQ Server, basta seguir o seguinte comando:
Através do comando acima, o comando RabbitMQ Server será instalado em/usr/local/sbin e não será adicionado automaticamente às variáveis de ambiente do usuário, portanto, precisamos adicionar o seguinte conteúdo ao arquivo .bash_profile ou .profile:
PATH = $ PATH:/USR/LOCAL/SBIN
Dessa forma, podemos iniciar o servidor RabbitMQ através do comando RabbitMQ-Server.
Instalação do Ubuntu
No Ubuntu, podemos usar o repositório APT para instalar
Instale Erlang e Execute: Apt-Get Install Erlang
Execute o seguinte comando para adicionar um repositório APT a /etc/apt/sources.list.d
Echo 'Deb http://www.rabbitmq.com/debian/ Testing Main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
Atualize a lista de pacotes do repositório APT e execute o comando sudo apt-get update
Instale o servidor Rabbit e execute o comando sudo apt-get install rabbitmq-server
Gerenciamento de coelhos
Podemos gerenciá -lo diretamente através do acesso ao arquivo de configuração ou pelo acesso da Web. Abaixo, apresentaremos como gerenciar através da web.
Execute o rabbitmq-plugins Ative o comando rabbitmq_management para ativar o plug-in de gerenciamento da web, para que possamos gerenciá-lo através do navegador.
> RabbitMQ-PLUGINS Ativar rabbitmq_management Os seguintes plugins foram ativados: Mochiweb webmachine rabbitmq_web_dispatch amqp_client rabbitmq_management_agent rabbitmq_managemapply plugin Configuration para rabbit@PC -2016021520620152020152020152020152015201520201520201520201520201520.
Abra o navegador e visite: http: // localhost: 15672/e faça login com o hóspede do usuário padrão, e a senha também é convidada. Podemos ver a página de gerenciamento na figura a seguir:
A partir da figura, podemos ver alguns conceitos básicos mencionados no capítulo anterior, como: conexões, canais, trocas, fila, etc. Os leitores que o usam pela primeira vez podem clicar nele para ver o conteúdo que têm e se familiarizar com o lado do servidor do RabbitMQ Server.
Clique na guia Admin para gerenciar usuários aqui.
Integração da inicialização da primavera
Abaixo, temos um sentimento intuitivo e uma compreensão do RabbitMQ, integrando o RabbitMQ no aplicativo de inicialização da primavera e implementando um exemplo simples de envio e recebimento de mensagens.
A integração do rabbitMQ na bota da primavera é muito fácil, porque já introduzimos o Starter POMS antes, e o módulo AMQP pode suportar bem o RabbitMQ. Vamos falar sobre o processo de integração em detalhes:
Crie um novo projeto de inicialização da primavera, chamado "RabbitMQ-Hello".
No POM.xml, as seguintes dependências são introduzidas, onde o Spring-Boot-Starter-AMQP é usado para suportar o RabbitMQ.
<Dor> <roupiid> org.springframework.boot </frupidId> <stifactId> Spring-Boot-Starter-Parent </ArtifactId> <Versão> 1.3.7.release </sipers> <relativepath/> <!-Looking Parent from Repository-> </dependences> <pendence> <Grupo> <! <TeRtifactId> Spring-boot-Starter-amqp </ArtifactId> </dependency> <pendence> <puperid> org.springframework.boot </frugiD> <ArtifactId> spring-boot-starter-test </stifactid> <copo> test </cope> </dependência> </dependências> </dependências> </dependências>
Configure a conexão e as informações do usuário sobre o RabbitMQ no Application.Properties. Os usuários podem voltar ao conteúdo da instalação acima e criar usuários na página de gerenciamento.
spring.application.name = rabbitmq-hello
spring.rabbitmq.host = lochostspring.rabbitmq.port = 5672spring.rabbitmq.username = springspring.rabbitmq.password = 123456
Crie remetente do produtor de mensagens. A interface AMQPTemplate define um conjunto de operações básicas para o protocolo AMQP, injetando uma instância da interface AMQPTEMPLATE. Na bota da primavera, sua implementação específica será injetada de acordo com a configuração. Neste produtor, geramos uma string e a enviamos para uma fila chamada Hello.
@ComPonentPublic Classe remetente {@AUTOWIRED AMQPTEMPLATE RABBITTEMPLATE; public void send () {String context = "hello" + new Date (); System.out.println ("remetente:" + context); this.rabbittemplate.convertandSend ("hello", contexto); }} Crie o receptor do consumidor de mensagens. A anotação @RabbitListener define a escuta da fila Hello desta classe e usa a anotação @Rabbithandler para especificar o método de processamento para a mensagem. Portanto, o consumidor realiza o consumo da fila Hello e a operação de consumo é o conteúdo da string da mensagem de saída.
@Componente @rabbitListener (fileues = "hello") public class Receiver {@rabbithandler public void Process (string hello) {System.out.println ("receptor:" + hello); }} Crie a classe RabbitMQ Classe RabbitConfig, usada para configurar informações avançadas, como filas, comutadores e roteamento. Aqui, nos concentramos em começar e primeiro definimos com uma configuração minimizante para concluir um processo básico de produção e consumo.
@ConfigurationPublic Classe rabbitConfig {@Bean public fila helloQueue () {return New fileue ("hello"); }} Crie a classe de aplicativo principal:
@SpringbooTApplicationPublic Classe helloApplication {public static void main (string [] args) {springapplication.run (helloapplication.class, args); }} Crie uma classe de teste de unidade para chamar a produção de mensagens:
@Runwith (springjunit4classrunner.class) @springapplicationConfiguration (classes = helloapplication.class) classe pública HelloApplicationTests {@AUTOWIRED PRIVENDENTE PRIVENTE DESPENDOR; @Test public void hello () lança a exceção {sever.send (); }}Depois de concluir a redação do programa, tente executá -lo. Primeiro, verifique se o servidor RabbitMQ foi iniciado e depois execute as seguintes operações:
Inicie a classe principal do aplicativo, no console, vemos o seguinte conteúdo, o programa cria uma conexão para acessar o SpringCloud em 127.0.0.1:5672.
Copie o código da seguinte forma: OsccachingConnectionFactory: Criado New Connection: SimpleConnection@29836D32 [delegate = amqp: //[email protected]: 5672/]
Ao mesmo tempo, através do painel de controle do RabbitMQ, podemos ver que as entradas que contêm a conexão atual em conexão e canais.
Execute a classe de teste de unidade e podemos ver a seguinte saída no console, e a mensagem é enviada para a fila Hello do servidor RabbitMQ.
Remetente: Olá, sol, 25 de setembro 11:06:11 CST 2016
Alterar para o console da classe principal do aplicativo, podemos ver a seguinte saída, o consumidor executa o programa do ouvinte da fila Hello e produz as informações de mensagem recebidas.
Receptor: Olá, Sun, 25 de setembro 11:06:11 CST 2016
Através do exemplo acima, introduzimos o módulo Spring-Boot-Starter-AMQP no aplicativo de inicialização da primavera e simplesmente configuramos para concluir o conteúdo de desenvolvimento da produção e consumo de mensagens RabbitMQ. No entanto, em aplicativos reais, ainda temos muito conteúdo que não foi demonstrado, por isso não daremos mais explicações aqui. Os leitores podem verificar os tutoriais oficiais do RabbitMQ por conta própria para obter um entendimento mais abrangente.
Exemplo completo: Capítulo 5-2-1
Código aberto China: http://git.oschina.net/diidispace/springboot-learning/tree/master/chapter5-2-1
Github: https://github.com/dyc87112/springboot-learning/tree/master/chapter5-2-1
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.