O RabbitMQ é uma implementação AMQP comumente usada. Este artigo é um tutorial simples sobre a integração do RabbitMQ com a inicialização da primavera.
Instale o ActiveMQ Server (você também não pode instalá -lo. Se ele não estiver instalado, você usará a memória MQ)
Construa o projeto de inicialização da primavera e adicione dependências. Basta adicionar este item
<!-Adicione a dependência do ActiveMQ-> <Ependency> <PuerpId> org.springframework.boot </foupiD> <TRAFACTID> Spring-boot-starter-activemq </ArtifactId> </pendence>
Adicione a classe de aplicativo
@Springbootapplication@atablescheduling // Envie mensagens usando uma tarefa cronometrada public classe mqtestApplication {public static void main (string [] args) {springapplication.run (mqtestapplication.class, args); }} Configure o aplicativo.yml
Primavera: ActiveMQ: Broker-URL: TCP: //127.0.01: 61616 Pacotes: Trust-All: true
Para criar um modelo de dados, os tipos de dados que podem ser enviados e consumidos são: String, Byte Array, Map <String ,?>, objeto serializável.
// Se a mensagem enviada for um objeto, ele deve implementar a interface serializável da classe pública tmodel implementa serializável {private estático final seriialversionuid = -921008687184331557L; Parte INT privada; public tmodel (int conting) {this.count = count; } @Override public string tostring () {return "tmodel [count =" + count + "]"; }} Construir um produtor
@ComPonenPublic Class Producer {// injete jmstemplate no produtor, podemos enviar mensagens através deste modelo JMSTEMPLATE final final privado jmstemplate; private int conting = 0; @Autowired Public Producer (jmstemplate jmstemplate) {this.jmstemplate = jmstemplate; } // Aqui usamos a tarefa cronometrada da Spring Boot para enviar mensagens @scheduled (fIllrate = 1000) public void create () {// Use ConvertandSend para enviar mensagens jmstemplate.convertandSend ("Queue1", novo tmodel (count ++)); }} Construir consumidor
@ComPonentPublic Classe Consumer {@jmsListener (destino = "Queue1") public void comsume (conteúdo tmodel) {System.out.println ("Receba a mensagem da Queue1 [" + content + "]"); }}Nota especial: se nossos produtores e consumidores estiverem em diferentes módulos, é melhor abstrair os dados a serem consumidos em um módulo público. O programa serializa e desapealiza objetos por meio de serializável. É necessário garantir que o serialversionuid do modelo de objeto do produtor e do consumidor seja consistente.
Endereço do projeto: https://github.com/ldwqh0/active-mq-spring.git
Exemplo: Configure o RabbitMQ e adicione uma fila
@ConfigurationPublic Classe AQUEUE {@BeanPublic Queue fileeue () {Return New Queue ("Good");}}Defina um produtor.
Quando o ActiveMQ estiver ativado, um AMQPTemplate será criado automaticamente, que pode ser injetado em qualquer lugar que você precisar. Podemos enviar mensagens para MQ através deste AMQPTEMPLAT
/*** defina um produtor*@author lidong*/@RestController@requestmapping ("/test") classe pública sendcontroller {@autowiredprivate amqptemplate modelo; @getMappingpublic string string () {// envia a mensagem amqptemplate.ConvertandSend ("BOM" BOM "BEM" "," "BEM", "@GetMappUrtand String" BOMEND () {// envia a mensagem amqptemplate.convertandSend ("BOM" BEM "" "" Defina o consumidor, especifique a fila de consumo especificando o rabbitner (filas = 'bom')
@ComponentPublic Classe Consumer {/*** Defina um consumidor*@param mensagem*/ @rabbitListener (fileues = "Good") public void Handler (string message) {System.out.println ("Recunce Mensagem de" + mensagem);}}Inicie o teste e digite http: // localhost: 8080/teste no navegador para enviar uma mensagem para a fila. Este par de colunas pode ser processado pelo consumidor
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.