SpringCloud 분산 형 마이크로 서비스 b2b2c 전자상거래 (13) Springboot 전체 RabbitMQ

이 글 은 RabbitMQ 서버 를 어떻게 통합 하 는 지 알 고 이 를 통 해 메 시 지 를 어떻게 보 내 고 받 는 지 알려 준다.래 빗 템 플 릿 을 통 해 Message Listener Adapter 를 통 해 POJO 형식의 정 보 를 구독 하 는 springboot 프로젝트 를 구축 할 것 입 니 다.JAVA Spring Cloud 대형 기업 분포 식 마이크로 서비스 클 라 우 드 가 구축 해 야 하 는 B2B2C 전자상거래 플랫폼 소스 코드: 3, 5, 3, 6, 2, 4, 7, 2, 5, 9
준비 작업 15minIDEAmaven 3.0 구축 프로젝트 를 시작 하기 전에 기 계 는 rabbitmq 를 설치 해 야 합 니 다. 홈 페이지 에서 다운로드 할 수 있 습 니 다.http://www.rabbitmq.com/download.html , 만약 당신 이 사용 하 는 Mac (프로그래머 는 모두 mac 를 사용 해 야 합 니 다), 당신 은 이렇게 다운로드 할 수 있 습 니 다: brew install rabbitmq 설치 완료 후 서버 를 엽 니 다: rabbitmq - server 서버 오픈 성공,다음 정 보 를 볼 수 있 습 니 다.
RabbitMQ 3.1.3. Copyright (C) 2007-2013 VMware, Inc.
##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/
##  ##
##########  Logs: /usr/local/var/log/rabbitmq/[email protected]
######  ##        /usr/local/var/log/rabbitmq/[email protected]
##########
            Starting broker... completed with 6 plugins.

프로젝트 구 조 를 구축 하 는 SpringBoot 프로젝트 의 pom 파일 의존 과 spring - boot - starter - amqp 의 시작 의존:

            org.springframework.boot
            spring-boot-starter-amqp
        

메시지 수신 자 를 만 드 는 것 은 모든 메시지 큐 프로그램 에서 메시지 수신 자 를 만 들 고 보 내 는 메시지 에 응답 해 야 합 니 다.
@Component
public class Receiver {

    private CountDownLatch latch = new CountDownLatch(1);

    public void receiveMessage(String message) {
        System.out.println("Received ");
        latch.countDown();
    }

    public CountDownLatch getLatch() {
        return latch;
    }

}

메시지 수신 자 는 간단 한 POJO 클래스 로 메 시 지 를 받 는 방법 을 정의 합 니 다. 메 시 지 를 받 으 러 등록 하면 모든 이름 을 지 을 수 있 습 니 다.springcloud 구 조 를 알 면 구 할 수 있 습 니 다. 3, 5, 3, 6, 2, 4, 7, 2, 5, 9.그 중에서 Count Downlatch 와 같은 종류 가 있 습 니 다. 발송 자 에 게 메 시 지 를 받 았 다 는 것 을 알 리 는 데 사 용 됩 니 다. 프로그램 에서 구체 적 으로 실현 할 필요 가 없습니다. latch. countDown () 만 있 으 면 됩 니 다.
메시지 감청 을 만 들 고 spring 프로그램 에 메 시 지 를 보 냅 니 다. RabbitTemplate 는 메 시 지 를 보 내 고 메 시 지 를 받 는 모든 방법 을 제공 합 니 다.당신 은 간단 한 설정 만 하면 됩 니 다.
메시지 감청 용기 에 quene, exchange 를 설명 하고 구성 요 소 를 연결 하여 메시지 코드 목록 을 보 내야 합 니 다.
package com.forezp;

import com.forezp.message.Receiver;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class SpringbootRabbitmqApplication {

     final static String queueName = "spring-boot";

    @Bean
    Queue queue() {
        return new Queue(queueName, false);
    }

    @Bean
    TopicExchange exchange() {
        return new TopicExchange("spring-boot-exchange");
    }

    @Bean
    Binding binding(Queue queue, TopicExchange exchange) {
        return BindingBuilder.bind(queue).to(exchange).with(queueName);
    }

    @Bean
    SimpleMessageListenerContainer container(ConnectionFactory connectionFactory,
                                             MessageListenerAdapter listenerAdapter) {
        SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
        container.setConnectionFactory(connectionFactory);
        container.setQueueNames(queueName);
        container.setMessageListener(listenerAdapter);
        return container;
    }

    @Bean
    MessageListenerAdapter listenerAdapter(Receiver receiver) {
        return new MessageListenerAdapter(receiver, "receiveMessage");
    }

    public static void main(String[] args) {
        SpringApplication.run(SpringbootRabbitmqApplication.class, args);
    }
}

좋은 웹페이지 즐겨찾기