RabbitMq实战: spring boot RabbitMq结合实例

一. 前言

你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。
消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。

二. RabbitMq简介:

AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
下面将介绍Spring boot结合RabbitMq的步骤:

三. Springboot集成 RabbitMq

1. pom.xml 文件引入jar包:

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

2. application.yml加入RabbitMq的配置:

spring:
  rabbitmq:
    host : 127.0.0.1
    port : 5672
    username: guest
    password: guest

3. 创建一个RabbitMq消息队列:

package com.plugs.RabbitMq;

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 helloQueue() {
    
    
        return new Queue("topic_name");
    }
}

4. 创建RabbitMq消息队列接收方:

package com.plugs.RabbitMq;

import com.alibaba.fastjson.JSONObject;
import com.enjoypark.model.DemoOrder;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
@RabbitListener(queues = "topic_name")
public class ReceiverMQ {
    
    

	@RabbitHandler
    public void process(String reciverStr) {
    
    
        //对接受的url发送消息
        try {
    
    
            System.out.println(reciverStr);
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
    }
}

5. 创建消息队列发送方:

package com.plugs.RabbitMq;

import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class SenderMQ {
    
    
	@Autowired
    private AmqpTemplate rabbitTemplate;

    public void send(String context) {
    
    
        System.out.println("Sender : " + context);
        this.rabbitTemplate.convertAndSend("topic_name", context);
    }
}

四. 获取源码:

  1. 获取完整源码地址: https://download.csdn.net/download/penggerhe/11670196
  2. 公众号关注,免费领取:
    在这里插入图片描述

五. 主流消息队列对比:

https://blog.csdn.net/penggerhe/article/details/108404243

猜你喜欢

转载自blog.csdn.net/penggerhe/article/details/108404141