메시지 미들웨어는 시스템 간의 분리 및 피크 제거에 큰 도움이됩니다. Spring Boot는 또한이 부분의 내용을 통합하며, 가장 쉬운 통합은 RabbitMQ입니다. 오늘날 우리는 RabbitMQ를 예로 사용할 것입니다.
오래된 규칙, 먼저 POM을 살펴 보겠습니다.
<pectionency> <groupid> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터 </artifactid> </eppendency> <pectionency> <groupid> org.springframewort.boot </groupid> <artifactid> spring-boot-starter-web </arevactid> </expendency> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-amqp </artifactid> </fectionency> <pectionement> <groupid> org.projectLombok </groupid> <tritifactid> lombok </artifactid> </sexendency>
통합 메시징 서비스를 제공하는 애플리케이션 수준 표준 고급 메시지 큐 프로토콜 인 AMQP 또는 고급 메시지 큐 프로토콜은 애플리케이션 수준 프로토콜의 개방형 표준이며 메시지 지향 미들웨어 용으로 설계되었습니다. 이 프로토콜을 기반으로 한 클라이언트 및 메시지 미들웨어는 메시지를 전달할 수 있으며 클라이언트/미들웨어의 다양한 제품 및 개발 언어로 제한되지 않습니다. Spring-Boot-Starter-AMQP는 RabbitMQ를 소개합니다. 전제 조건이 있습니다. 먼저 컴퓨터에 RabbitMQ 서버를 설치 한 다음 RabbitMQ-Server 서버를 실행하여 시작하십시오. 시작 후 클라이언트 프로그램을 구성 할 수 있습니다. 먼저 구성 파일을보십시오
spring.application.name : spirng-boot-rabbitmqspring.rabbitmq.host : 127.0.0.1spring.rabbitmq.port : 5672spring.rabbitmq.username : Guestspring.rabbitmq.password : Guestword
서버의 IP, 포트, 사용자 이름, 비밀번호 및 기타 기본 정보는 서버에 연결할 수 있도록 구성됩니다.
RabbitMQ 구성 클래스를 추가하십시오
package com.shuqi; import org.springframework.amqp.core.queue; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.configuration; @configurationpublic class rabbitconfig {@bean public queue queue () { "hello queue ("); }}Hello라는 큐가 만들어지고 생산자는 데이터를 hello 대기열에 넣을 수 있으며 소비자는 hello 큐에서 데이터를 소비 할 수 있습니다. 생산자의 핸들러를 확인하십시오
package com.shuqi.controller; import org.springframework.amqp.core.amqptemplate; import org.springframework.bean.bean.bean.annotation.autowired; import org.springframework.web.bind.bind.annotation.requestmapping; import org.squestpringpramwork.web.bind.bind.requestation org.springframework.web.bind.annotation.restcontroller; @RestControllerPublic 클래스 HelloController {@autowired private amqptemplate Rabbittemplate; @requestmapping ( "/hello") public String Hello (@requestparam 문자열 이름) {rabbittemplate.convertandSend ( "hello", "hello"+name); 반환 "메시지가 성공적으로 전송됩니다"; }}컨트롤러를 통한 메시지 제작 및 amqptemplate를 통한 메시지를 전송합니다. 생산자와 함께 소비자를 살펴 보겠습니다
패키지 com.shuqi.consumer; import lombok.extern.slf4j.slf4j; import org.springframework.amqp.rabbit.annotation.rabbithandler; import org.springframework.amqp.rabbit.annotation.rabbitlistener; import org.springframework.stereotype.component;@component@rabbitlistener (queues = "hello")@slf4jpublic class helloconsumer {@RabbithAndler public void process (string hello) {log.info ( "수신 메시지 : {}", hello); }}@RabbitListener (Queues = "Hello")는 RabbitMQ 리스너임을 의미합니다. 리스너의 대기열 이름은 Hello입니다. 즉, 데이터가 확실히 올 것입니다. 데이터가 오면 @RabBithandler 수정 방법을 통해 데이터가 처리됩니다. 인쇄하십시오. 프로젝트를 시작하고 결과를 보자.
http : // localhost : 8080/hello? name = shuqi를 입력하여 다음 결과를 확인하십시오.
콘솔에서 로그 출력을 확인하십시오
2018-03-25 16 : 24 : 32.752 정보 4987 --- [CTASKEXECUTOR-1] com.shuqi.consumer.helloconsumer :받은 메시지 : 메시지 : Hello Shuqi
이는 소비자가 메시지를 받고 처리했음을 의미합니다. 당신은 그것을 가지고 놀 수 있습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.