`

SpringCloud分布式微服务b2b2c电子商务(十三)Springboot整合RabbitMQ

阅读更多

这篇文章带你了解怎么整合RabbitMQ服务器,并且通过它怎么去发送和接收消息。我将构建一个springboot工程,通过RabbitTemplate去通过MessageListenerAdapter去订阅一个POJO类型的消息。

 

准备工作

15min

IDEA

maven 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/rabbit@localhost.log
######  ##        /usr/local/var/log/rabbitmq/rabbit@localhost-sasl.log
##########
            Starting broker... completed with 6 plugins.

 构建工程

构架一个SpringBoot工程,其pom文件依赖加上spring-boot-starter-amqp的起步依赖:

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

 创建消息接收者

在任何的消息队列程序中,你需要创建一个消息接收者,用于响应发送的消息。

@Component
public class Receiver {

    private CountDownLatch latch = new CountDownLatch(1);

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

    public CountDownLatch getLatch() {
        return latch;
    }

}

 消息接收者是一个简单的POJO类,它定义了一个方法去接收消息,当你注册它去接收消息,你可以给它取任何的名字。了解springcloud架构可以加求求:三五三六二四七二五九。其中,它有CountDownLatch这样的一个类,它是用于告诉发送者消息已经收到了,你不需要在应用程序中具体实现它,只需要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);
    }
}

 

分享到:
评论

相关推荐

    Springboot整合RabbitMQ最简单demo

    Springboot整合RabbitMQ最简单demo,适用于springcloud项目,作为消息总线适用,需要安装RabbitMQ,Mac linux可以使用命令行一键安装,在项目配置文件配置好端口即可(已默认配置),启动项目访问8080端口,参数见controller.

    Spring Cloud分布式微服务实战视频教程(养成应对复杂业务的综合技术能力).rar

    Spring Cloud分布式微服务实战视频教程(养成应对复杂业务的综合技术能力),2020新课!附完整源码,这是一门培养应对复杂业务的综合技术能力的实战课程,本课采用前后端分离开发模式,严格遵守企业级架构和规范,带...

    SpringBoot整合RabbitMQ.zip

    SpringBoot整合RabbitMQ的详细过程 **1.该篇博文首先讲述了交换机和队列之间的绑定关系** ①direct、②fanout、③topic **2.然后讲消息的回调** 四种情况下,确认触发哪个回调函数: ①消息推送到server,但是在...

    springBoot整合RabbitMQ案例

    SpringBoot整合RabbitMQ是一个常见的后端开发任务,它涉及到分布式消息传递和Java应用程序的集成。RabbitMQ是一个开源的消息代理和队列服务器,而SpringBoot是基于Spring框架的简化版,提供了快速构建应用程序的方式...

    SpringCloud分布式微服务实战,打造大型自媒体3大业务平台

    SpringCloud分布式微服务实战,打造大型自媒体3大业务平台视频教程,完整版15章,附源码下载。以前后端分离模式,严守企业级架构和规范,开发门户平台+媒体中心+运营中心三大业务平台。全面掌握主流后端技术栈:...

    springboot+整合rabbitmq的全套代码

    reabbitmq的完整学习 &gt;rabbitMq软件上传到liunx服务器 &gt;RabbitMQ入门 ...&gt;Springboot整合RabbitMQ &gt;SpringBoot整合RabbitMQ(交换机与多个队列绑定) &gt;RabbitMQ-集群搭建&gt;负载均衡-HAProxy 完整链接地址: ...

    基于SpringBoot整合RabbitMQ发送邮件通知

    SpringCloud 和 SpringBoot 是两个广泛使用的 Java 开发框架,它们为微服务架构提供了强大的支持。本话题主要关注如何利用 SpringBoot 集成 RabbitMQ 来实现邮件通知功能,这在微服务间进行异步通信或触发业务流程时...

    springboot整合rabbitmq,开启手工确认。保证消息100%投递

    在Spring Boot应用中整合RabbitMQ,以确保消息100%投递,是一个关键的实践,特别是对于那些需要高可靠性和数据一致性的系统。RabbitMQ是一个流行的开源消息代理,它遵循Advanced Message Queuing Protocol (AMQP)...

    Spring Cloud商城项目专栏 034 RabbitMQ简介 安装 SpringBoot整合RabbitMQ框架搭建

    Spring Cloud商城项目专栏 034 RabbitMQ简介 安装 SpringBoot整合RabbitMQ框架搭建

    springBoot整合rabbitMQ,包括erlang20.3,rabbitmq-server-3.7.14安装包

    springBoot整合rabbitMQ,包括erlang20.3,rabbitmq-server-3.7.14安装包 整合4种常用模式+高级特性死信队列 暂未整合TTL队列 博客地址:...

    SpringBoot整合Rabbitmq发送接收消息实战

    SpringBoot整合Rabbitmq发送接收消息实战 另外,博主发起了SpringBoot整合Rabbitmq这一系列的gitchat交流会。刚兴趣的童鞋可以进入交流:https://gitbook.cn/gitchat/activity/5b90f9214fb1bd5c9acd4338 交流QQ:...

    Springboot+rabbitmq集成

    文件内包含了rabbit安装的必需文件以及springboot整合rabbitmq的完整代码,代码里包含了原生的rabbitmq使用代码和整合springboot后的使用代码,还有rabbit队列的所有消息队列模式,代码简单易懂,解压打开就可以使用

    Springboot整合RabbitMQ简单demo

    Spring Boot作为Java领域广泛应用的微服务框架,与RabbitMQ的整合可以方便地实现消息通信。本文将详细讲解如何在Spring Boot项目中整合RabbitMQ,并通过一个简单的示例来展示其实现过程。 首先,我们需要了解...

    springboot使用rabbitmq工具类

    springboot使用rabbitmq工具类,里面包含比较原生的方法,还有一套是我结合springboot框架写的一套方法,里面有两个方法,看情况使用,一般使用框架的方法比较好,因为框架方法时前辈们封装好经过检验的没有问题的方法,...

    java基于SpringBoot+RabbitMQ用户注册实现异步发送验证码源码.zip

    基于SpringBoot+RabbitMQ用户注册实现异步发送验证码源码。基于SpringBoot+RabbitMQ用户注册实现异步发送验证码源码。基于SpringBoot+RabbitMQ用户注册实现异步发送验证码源码。...基于SpringBoot+Rabbit

    SpringBoot整合RabbitMQ 实现消息发送确认与消息接收确认机制 源码及教材

    SpringBoot整合RabbitMQ 实现消息发送确认与消息接收确认机制 源码及教材 可以参考博客: https://blog.csdn.net/qq_29914837/article/details/93376741

    基于SpringCloud分布式微服务+微信小程序实现短视频社交app设计源码.zip

    《基于SpringCloud分布式微服务+微信小程序实现短视频社交App设计源码详解》 在现代互联网技术的推动下,短视频社交应用已经成为人们日常生活中不可或缺的一部分。本文将深入探讨如何利用SpringCloud分布式微服务...

    springboot+rabbitmq项目demo(亲测,可正常运行)

    在本文中,我们将深入探讨如何使用SpringBoot与RabbitMQ构建一个可运行的消息队列项目。SpringBoot以其简洁的配置和快速的启动时间而受到广大开发者喜爱,而RabbitMQ作为一款广泛使用的开源消息代理,能够高效处理...

    springboot整合rabbitmq项目

    SpringBoot整合RabbitMQ项目是将流行的Spring Boot框架与企业级消息中间件RabbitMQ结合,以实现高效、可靠的异步通信和解耦。在这个项目中,我们将探讨如何配置Spring Boot应用来使用RabbitMQ,以及相关的核心概念和...

    RabbitMQ入门到进阶(Spring整合RabbitMQ&amp;SpringBoot整合RabbitMQ).doc

    RabbitMQ入门到进阶(Spring整合RabbitMQ&amp;SpringBoot整合RabbitMQ).doc

Global site tag (gtag.js) - Google Analytics