spring 使用RabbitMQ进行消息传递的示例代码

以下是Spring使用RabbitMQ进行消息传递的完整攻略,包含两个示例说明。

示例1:简单队列模式

步骤1:添加依赖

在pom.xml文件中添加以下依赖:

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

步骤2:配置文件

在application.properties文件中添加以下配置:

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

步骤3:发送消息

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Producer implements CommandLineRunner {

    @Autowired
    private RabbitTemplate rabbitTemplate;

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

    @Override
    public void run(String... args) throws Exception {
        String message = "Hello World!";
        rabbitTemplate.convertAndSend("my_queue", message);
        System.out.println("Message sent: " + message);
    }
}

步骤4:接收消息

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Consumer {

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

    @RabbitListener(queues = "my_queue")
    public void receiveMessage(String message) {
        System.out.println("Message received: " + message);
    }
}

步骤5:运行程序

运行发送消息的程序后,您将看到以下输出:

Message sent: Hello World!

运行接收消息的程序后,您将看到以下输出:

Message received: Hello World!

示例2:工作队列模式

步骤1:添加依赖

同示例1。

步骤2:配置文件

同示例1。

步骤3:发送消息

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Producer implements CommandLineRunner {

    @Autowired
    private RabbitTemplate rabbitTemplate;

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

    @Override
    public void run(String... args) throws Exception {
        for (int i = 1; i <= 10; i++) {
            String message = "Message " + i;
            rabbitTemplate.convertAndSend("my_queue", message);
            System.out.println("Message sent: " + message);
        }
    }
}

步骤4:接收消息

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Consumer {

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

    @RabbitListener(queues = "my_queue")
    public void receiveMessage(String message) throws InterruptedException {
        System.out.println("Message received: " + message);
        Thread.sleep(5000);
        System.out.println("Message processed");
    }
}

步骤5:运行程序

运行发送消息的程序后,您将看到以下输出:

Message sent: Message 1
Message sent: Message 2
Message sent: Message 3
Message sent: Message 4
Message sent: Message 5
Message sent: Message 6
Message sent: Message 7
Message sent: Message 8
Message sent: Message 9
Message sent: Message 10

运行接收消息的程序后,您将看到以下输出:

Message received: Message 1
Message received: Message 2
Message received: Message 3
Message received: Message 4
Message received: Message 5
Message received: Message 6
Message received: Message 7
Message received: Message 8
Message received: Message 9
Message received: Message 10
Message processed
Message processed
Message processed
Message processed
Message processed
Message processed
Message processed
Message processed
Message processed
Message processed

以上就是Spring使用RabbitMQ进行消息传递的完整攻略,包含两个示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring 使用RabbitMQ进行消息传递的示例代码 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • GO语言ini配置文件的读取的操作

    以下是“GO语言ini配置文件的读取的操作”的完整攻略,包含两个示例。 简介 在Go语言应用程序中,可以使用ini配置文件来存储应用程序的配置信息。ini配置文件是一种简单的文本文件格式,可以包含多个节和键值对。本攻略将介绍如何使用Go语言读取ini配置文件,并提供两个示例。 示例1:使用go-ini库读取ini配置文件 以下是使用go-ini库读取ini配…

    RabbitMQ 2023年5月15日
    00
  • Shell 命令启动Docker Container的实现

    以下是“Shell 命令启动Docker Container的实现”的完整攻略,包含两个示例。 简介 在本攻略中,我们将介绍如何使用Shell命令启动Docker Container。通过攻略的学习,您将了解如何使用docker run命令和docker-compose命令启动Docker Container。 示例一:使用docker run命令启动Doc…

    RabbitMQ 2023年5月15日
    00
  • Spring集成webSocket页面访问404问题的解决方法

    以下是“Spring集成WebSocket页面访问404问题的解决方法”的完整攻略,包含两个示例。 简介 在Spring中集成WebSocket时,有时会出现页面访问404的问题。本攻略将详细讲解如何解决Spring集成WebSocket页面访问404的问题,包括配置文件修改、代码修改等内容。 示例一:配置文件修改 以下是解决Spring集成WebSocke…

    RabbitMQ 2023年5月15日
    00
  • MySQL Router的安装部署

    以下是MySQL Router的安装部署的完整攻略,包含两个示例。 简介 MySQL Router是一个开源的数据库路由器,可以帮助我们轻松地实现MySQL数据库的负载均衡和故障转移。本攻略将详细讲解如何安装和部署MySQL Router,并提供两个示例。 示例一:使用MySQL Router实现负载均衡 以下是使用MySQL Router实现负载均衡的代码…

    RabbitMQ 2023年5月15日
    00
  • 解决java启动时报线程占用报错:Exception in thread “Thread-14“ java.net.BindException: Address already in use: bind

    以下是“解决java启动时报线程占用报错:Exception in thread “Thread-14“ java.net.BindException: Address already in use: bind”的完整攻略,包含两个示例。 简介 在本攻略中,我们将介绍如何解决Java启动时报线程占用报错:Exception in thread “Thread…

    RabbitMQ 2023年5月15日
    00
  • 详解Python Celery和RabbitMQ实战教程

    详解Python Celery和RabbitMQ实战教程 Python Celery是一个强大的分布式任务队列,可以用于异步处理任务。RabbitMQ是一个功能强大的消息队列系统,可以用于构建高可用性、高性能的分布式应用程序。在本文中,我们将介绍如何使用Python Celery和RabbitMQ实现异步任务处理,并提供两个示例说明。 环境准备 在开始之前,…

    RabbitMQ 2023年5月15日
    00
  • Java中如何保证缓存一致性问题

    以下是“Java中如何保证缓存一致性问题”的完整攻略,包含两个示例。 简介 在本攻略中,我们将详细讲解Java中如何保证缓存一致性问题。通过攻略的学习,您将了解Java中缓存的基本概念、缓存一致性问题的原因、如何保证Java中缓存一致性问题以及如何优化Java中缓存应用。 示例一:保证Java中缓存一致性问题 以下是保证Java中缓存一致性问题的示例: 使用…

    RabbitMQ 2023年5月15日
    00
  • SpringBoot整合RabbitMQ处理死信队列和延迟队列

    SpringBoot整合RabbitMQ处理死信队列和延迟队列 RabbitMQ 是一个开源的消息队列系统,支持多种消息递协议。在使用 RabbitMQ 时,死信队列和延迟队列是两个常见的需求。本文将详细讲解 SpringBoot 整合 RabbitMQ 处理死信队列和延迟队列的完整攻略,并提供两个示例说明。 死信队列 死信队列是指当消息无法被正确处理时,将…

    RabbitMQ 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部