SpringBoot가 RabbitMQ를 통합하는 방법
SpringBoot는 RabbitMQ를 통합합니다
먼저 SpringBoot 프로젝트를 빌드하고 POM XML 파일에 다음 종속성을 추가합니다
<依赖> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-amqp</artifactid></依赖><依赖> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid></依赖>
구성 파일을 수정하고 다음 RabbitMQ 구성을 추가합니다
服务器: port: 8888 # 设置端口号Spring: rabbitMQ: host: 127.0.0.1 # 设置 RabbitMQ 的主机 port: 5672 # 设置 RabbitMQ 服务端口 username: guest # 设置 RabbitMQ 用户名 password: guest # 设置 RabbitMQ 密码
새 공개 상수 클래스
public interface RabbitConstant { /** * 简单模式 */ String SIMPLE_QUEUE_NAME = "simple_queue"; /** * 工作模式 */ String WORK_QUEUE_NAME = "work_queue"; /** * 发布/订阅模式 */ String PUBLISH_SUBSCRIBE_EXCHANGE_NAME = "publish_subscribe_exchange"; 字符串 PUBLISH_SUBSCRIBE_FIRST_QUEUE_NAME = "publish_subscribe_first_queue"; 字符串 PUBLISH_SUBSCRIBE_SECOND_QUEUE_NAME = "publish_subscribe_second_queue"; /** * 路由模式 */ String ROUTING_EXCHANGE_NAME = "routing_exchange"; 字符串 ROUTING_FIRST_QUEUE_NAME = "routing_first_queue"; 字符串 ROUTING_SECOND_QUEUE_NAME = "routing_second_queue"; 字符串 ROUTING_THIRD_QUEUE_NAME = "routing_third_queue"; 字符串 ROUTING_FIRST_QUEUE_ROUTING_KEY_NAME = "routing_first_queue_routing_key"; 字符串 ROUTING_SECOND_QUEUE_ROUTING_KEY_NAME = "routing_second_queue_routing_key"; 字符串 ROUTING_THIRD_QUEUE_ROUTING_KEY_NAME = "routing_third_queue_routing_key"; /** * 主题模式 */ String TOPICS_EXCHANGE_NAME = "topics_exchange"; 字符串 TOPICS_FIRST_QUEUE_NAME = "topics_first_queue"; 字符串 TOPICS_SECOND_QUEUE_NAME = " 字符串 TOPICS_THIRD_QUEUE_NAME = "topics_third_queue"; String TOPICS_FIRST_QUEUE_ROUTING_KEY = "topics.first.routing.key"; String TOPICS_SECOND_QUEUE_ROUTING_KEY = "topics.second.routing.key"; String TOPICS_THIRD_QUEUE_ROUTING_KEY = "topics.third.routing.key"; 字符串 TOPICS_ROUTING_KEY_FIRST_WILDCARD = "#.first.#"; 字符串 TOPICS_ROUTING_KEY_SECOND_WILDCARD = "*.second.#"; 字符串 TOPICS_ROUTING_KEY_THRID_WILDCARD = "*.third.*"; /** * 标题模式 */ String HEADER_EXCHANGE_NAME = "header_exchange"; 字符串 HEADER_FIRST_QUEUE_NAME = "header_first_queue"; 字符串 HEADER_SECOND_QUEUE_NAME = "header_second_queue"; /** * rpc 模式 */ String RPC_QUEUE_NAME = "rpc_queue"; }
컨트롤러 요청 클래스 추가( 확인 결과는 마지막에 추가 가능)
导入 com.example.rabbitmq.constant.RabbitConstant; 导入 org.springframework.amqp.core.Message; 导入 org.springframework.amqp.core.MessageProperties; 导入 org.springframework.amqp.rabbit.core.RabbitTemplate; 导入 org.springframework.beans.factory.annotation.Autowired; 导入 org.springframework.web.bind.annotation.GetMapping; 导入 org.springframework.web.bind.annotation.RestController; 导入 java.nio.charset.StandardCharsets;@RestController public class RabbitController { @Autowired private RabbitTemplate rabbitTemplate; @GetMapping(value = "/simple") public void simple() { rabbitTemplate.convertAndSend(RabbitConstant.SIMPLE_QUEUE_NAME, "你好世界!"); } @GetMapping(value = "/work") public void work() { rabbitTemplate.convertAndSend(RabbitConstant.WORK_QUEUE_NAME, "work hello!"); } @GetMapping(value = "/pubsub") public void pubsub() { rabbitTemplate.convertAndSend(RabbitConstant.PUBLISH_SUBSCRIBE_EXCHANGE_NAME, null, "发布/订阅你好"); } @GetMapping(value = "/routing") public void routing() { // 向第一个队列发送消息 rabbitTemplate.convertAndSend(RabbitConstant.ROUTING_EXCHANGE_NAME, RabbitConstant.ROUTING_FIRST_QUEUE_ROUTING_KEY_NAME, "路由你好"); } @GetMapping(value = "/topics") public void topics() { // 向第一个队列发送消息。这时候队列可以接收到消息,因为队列的通配符是#first.#,而routing_key是topics first。路由。键,匹配成功 rabbitTemplate.convertAndSend(RabbitConstant.TOPICS_EXCHANGE_NAME, RabbitConstant.TOPICS_FIRST_QUEUE_ROUTING_KEY, "topics hello"); // 向第二个队列发送消息。这时候队列也能收到消息了,因为队列的通配符是*秒#,而routing_key是topic秒。路由。键,匹配成功 rabbitTemplate.convertAndSend(RabbitConstant.TOPICS_EXCHANGE_NAME, RabbitConstant.TOPICS_SECOND_QUEUE_ROUTING_KEY, "topics hello"); // 向第三个队列发送消息。此时队列无法接受消息,因为队列通配符是*第三个*,而routing_key是topics第三个。路由。键,匹配失败 rabbitTemplate.convertAndSend(RabbitConstant.TOPICS_EXCHANGE_NAME, RabbitConstant.TOPICS_THIRD_QUEUE_ROUTING_KEY, "topics hello"); } @GetMapping(value = "/header") public void header() { // 这个消息应该被两个队列接收。第一个队列全部匹配成功,第二个队列 Hello 值任意匹配成功 MessageProperties messageProperties = new MessageProperties(); messageProperties.setHeader("matchAll", "YES"); messageProperties.setHeader("你好", "world"); Message message = new Message("header first hello".getBytes(StandardCharsets.UTF_8), messageProperties); rabbitTemplate.convertAndSend(RabbitConstant.HEADER_EXCHANGE_NAME, null, message); // 这个消息应该只被第二个队列接受。第一个队列全部匹配失败, MessageProperties messagePropertiesSecond = new MessageProperties(); messagePropertiesSecond.setHeader("matchAll", "NO"); Message messageSecond = new Message("header second hello".getBytes(StandardCharsets.UTF_8), messagePropertiesSecond); rabbitTemplate.convertAndSend(RabbitConstant.HEADER_EXCHANGE_NAME, null, messageSecond); } @GetMapping(value = "/rpc") public void rpc() { Object responseMsg = rabbitTemplate.convertSendAndReceive(RabbitConstant.RPC_QUEUE_NAME, "rpc hello!"); System.out.println("rabbit rpc 响应消息:" + responseMsg); } }
위 내용은 SpringBoot가 RabbitMQ를 통합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











React 및 RabbitMQ를 사용하여 안정적인 메시징 애플리케이션을 구축하는 방법 소개: 최신 애플리케이션은 실시간 업데이트 및 데이터 동기화와 같은 기능을 달성하기 위해 안정적인 메시징을 지원해야 합니다. React는 사용자 인터페이스 구축을 위한 인기 있는 JavaScript 라이브러리인 반면 RabbitMQ는 안정적인 메시징 미들웨어입니다. 이 기사에서는 React와 RabbitMQ를 결합하여 안정적인 메시징 애플리케이션을 구축하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. RabbitMQ 개요:

RabbitMQ를 사용하여 PHP에서 분산 메시지 처리를 구현하는 방법 소개: 대규모 애플리케이션 개발에서 분산 시스템은 일반적인 요구 사항이 되었습니다. 분산 메시지 처리는 작업을 여러 처리 노드에 분산하여 시스템의 효율성과 안정성을 향상시키는 패턴입니다. RabbitMQ는 AMQP 프로토콜을 사용하여 메시지 전달 및 처리를 구현하는 신뢰할 수 있는 오픈 소스 메시지 대기열 시스템입니다. 이 기사에서는 배포를 위해 PHP에서 RabbitMQ를 사용하는 방법을 다룹니다.

SpringBoot와 SpringMVC는 모두 Java 개발에서 일반적으로 사용되는 프레임워크이지만 둘 사이에는 몇 가지 분명한 차이점이 있습니다. 이 기사에서는 이 두 프레임워크의 기능과 용도를 살펴보고 차이점을 비교할 것입니다. 먼저 SpringBoot에 대해 알아봅시다. SpringBoot는 Spring 프레임워크를 기반으로 하는 애플리케이션의 생성 및 배포를 단순화하기 위해 Pivotal 팀에서 개발되었습니다. 독립 실행형 실행 파일을 구축하는 빠르고 가벼운 방법을 제공합니다.

최신 애플리케이션의 복잡성이 증가함에 따라 메시징은 강력한 도구가 되었습니다. 이 분야에서 RabbitMQ는 다양한 애플리케이션 간에 메시지를 전달하는 데 사용할 수 있는 매우 인기 있는 메시지 브로커가 되었습니다. 이 기사에서는 Go 언어에서 RabbitMQ를 사용하는 방법을 살펴보겠습니다. 이 가이드에서는 다음 내용을 다룹니다. RabbitMQ 소개 RabbitMQ 설치 RabbitMQ 기본 개념 Go에서 RabbitMQ 시작하기 RabbitMQ 및 Go

Golang과 RabbitMQ 간의 실시간 데이터 동기화 솔루션 소개: 오늘날 인터넷의 대중화와 데이터 양의 폭발적인 증가로 인해 실시간 데이터 동기화가 점점 더 중요해지고 있습니다. 비동기 데이터 전송 및 데이터 동기화 문제를 해결하기 위해 많은 회사에서는 메시지 대기열을 사용하여 데이터의 실시간 동기화를 달성하기 시작했습니다. 이 글에서는 Golang과 RabbitMQ를 기반으로 한 실시간 데이터 동기화 솔루션을 소개하고 구체적인 코드 예시를 제공합니다. 1. RabbitMQ란 무엇인가요? 랍비

이 글에서는 dubbo+nacos+Spring Boot의 실제 개발에 대해 이야기하기 위해 자세한 예제를 작성하겠습니다. 이 기사에서는 이론적 지식을 너무 많이 다루지는 않지만 dubbo를 nacos와 통합하여 개발 환경을 신속하게 구축하는 방법을 설명하는 가장 간단한 예를 작성합니다.

이제 점점 더 많은 회사들이 마이크로서비스 아키텍처 모델을 채택하기 시작하고 있으며 이 아키텍처에서 메시지 큐는 중요한 통신 방법이 되었으며 그 중 RabbitMQ가 널리 사용됩니다. Go 언어에서 go-zero는 최근 몇 년 동안 등장한 프레임워크로, 개발자가 메시지 대기열을 보다 쉽게 사용할 수 있도록 다양한 실용적인 도구와 방법을 제공합니다. 아래에서는 실제 응용 프로그램을 기반으로 한 go-zero를 소개합니다. RabbitMQ의 응용실습. 1.RabbitMQ 개요Rabbit

GolangRabbitMQ: 고가용성 메시지 대기열 시스템의 아키텍처 설계 및 구현에는 특정 코드 예제가 필요합니다. 소개: 인터넷 기술의 지속적인 발전과 광범위한 응용으로 인해 메시지 대기열은 현대 소프트웨어 시스템에서 없어서는 안될 부분이 되었습니다. 분리, 비동기 통신, 내결함성 처리 및 기타 기능을 구현하는 도구로서 메시지 큐는 분산 시스템에 대한 고가용성 및 확장성 지원을 제공합니다. 효율적이고 간결한 프로그래밍 언어인 Golang은 높은 동시성 및 고성능 시스템을 구축하는 데 널리 사용됩니다.
