SpringBoot 와 rabbitmq 의 결합 예시

4356 단어 SpringBootrabbitmq
메시지 미들웨어 는 우리 시스템 간 의 결합,소 봉 등에 큰 도움 이 된다.spring boot 도 이 부분의 내용 을 통합 하여 가장 쉬 운 것 은 rabbitmq 입 니 다.오늘 우 리 는 rabbitmq 를 예 로 들 어 설명 한다.
낡은 규칙

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-amqp</artifactId>
    </dependency>

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>

AMQP,즉 Advanced Message Queuing Protocol 은 통 일 된 메시지 서 비 스 를 제공 하 는 응용 층 표준 고급 메시지 큐 프로 토 콜 로 응용 층 프로 토 콜 의 개방 기준 으로 메 시 지 를 위 한 미들웨어 디자인 입 니 다.이 프로 토 콜 을 바탕 으로 하 는 클 라 이언 트 와 메시지 중간 부품 은 메 시 지 를 전달 할 수 있 으 며 클 라 이언 트/중간 부품 의 서로 다른 제품,서로 다른 개발 언어 등 조건 의 제한 을 받 지 않 습 니 다.spring-boot-starter-amqp 가 도입 한 것 은 바로 rabbitmq 입 니 다.컴퓨터 에 먼저 rabbitmq 의 server 를 설치 한 다음 rabbitmq-server server server 를 실행 하면 시작 합 니 다.시작 하면 클 라 이언 트 프로그램 을 설정 할 수 있 습 니 다.우선 저희 프로필 을 보 겠 습 니 다.

spring.application.name: spirng-boot-rabbitmq

spring.rabbitmq.host: 127.0.0.1
spring.rabbitmq.port: 5672
spring.rabbitmq.username: guest
spring.rabbitmq.password: guest
서버 의 IP,포트,사용자 이름,비밀번호 등 기본 정 보 를 설정 하여 서버 에 연결 할 수 있 도록 합 니 다.
Rabbitmq 설정 클래스 추가

package com.shuqi;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabbitConfig {
  @Bean
  public Queue Queue() {
    return new Queue("hello");
  }
}

hello 라 는 이름 의 대기 열 을 만 든 다음 producer 는 hello 대기 열 에 데 이 터 를 넣 을 수 있 습 니 다.consumer 는 hello 대기 열 에서 데 이 터 를 소비 할 수 있 습 니 다.프로듀서 의 처리 프로그램 을 보 겠 습 니 다.

package com.shuqi.controller;

import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

  @Autowired
  private AmqpTemplate rabbitTemplate;

  @RequestMapping("/hello")
  public String hello(@RequestParam String name){
    rabbitTemplate.convertAndSend("hello","hello "+name);
    return "      ";
  }

}

controller 를 통 해 메 시 지 를 생산 하고 AmqpTemplate 를 통 해 메 시 지 를 보 냅 니 다.생산자 가 생기 면 소비 자 를 봅 시다.

package 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")
@Slf4j
public class HelloConsumer {

  @RabbitHandler
  public void process(String hello) {
    log.info("      :message:{}",hello);
  }
}

@RabbitListener(queues="hello")는 Rabbitmq 의 모니터 라 고 표시 합 니 다.감청 대기 열 이름 은 hello 입 니 다.데이터 가 올 수 있다 는 것 을 설명 합 니 다.데이터 가 왔 습 니 다.@RabbitHandler 를 통 해 수 정 된 데 이 터 를 처리 합 니 다.인쇄 해 주세요.다음은 프로젝트 를 시작 해서 효 과 를 봅 시다.
브 라 우 저 에 입력http://localhost:8080/hello?name=shuqi 아래 의 결 과 를 보다

콘 솔 출력 로그 보기
2018-03-25 16:24:32.752 INFO 4987---[cTaskExecutor-1]com.shuqi.consumer.HelloConsumer:받 은 메시지:message:hello shuqi
소식 이 consumer 에 의 해 접수 되 고 처리 되 었 다 는 것 을 설명 한다.모두 놀 수 있다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기