前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(16)SpringBoot整合RabbitMQ

(16)SpringBoot整合RabbitMQ

作者头像
IT云清
发布2019-05-10 12:28:42
7420
发布2019-05-10 12:28:42
举报
文章被收录于专栏:IT云清IT云清

https://blog.csdn.net/weixin_39800144/article/details/89037698

640?wx_fmt=jpeg
640?wx_fmt=jpeg

图片来源:pexels网站

640?wx_fmt=png
640?wx_fmt=png
640?wx_fmt=png
640?wx_fmt=png

  摘要:本文主要讲解,SpringBoot整合 RabbitMQ,这里先只做简单的整合示范,详细用法见后续文章。

主要步骤如下:

1.引入依赖

2.配置文件

3.队列,路由配置

4.消息生产者

5.消息消费者

6.测试

7.User实体  这个随意建一个实体类就好,或者不需要实体类,传个字符串,链表都可以,什么数据都可以传输。

1.引入依赖

代码语言:javascript
复制
<!--rabbitmq-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2.配置文件

根据自己的rabbit服务参数去配置

代码语言:javascript
复制
# rabbitmq
spring.rabbitmq.addresses=xx.xx.xx.xx:5672
spring.rabbitmq.username=root
spring.rabbitmq.password=root
spring.rabbitmq.publisher-confirms=true
spring.rabbitmq.virtual-host=/

3.队列,路由配置

这里我们配置队列,路由,交换机,本篇先只给出一个队列。

代码语言:javascript
复制
package com.java4all.rabbitmq1;

import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Author: momo
 * Date: 2018/6/15
 * Description:配置信息,队列,交换机
 */
@Configuration
public class RabbitConfig {

    //队列 queue1
    @Bean
    public Queue queue1(){
        return new Queue("queue1");
    }

}

4.消息生产者

代码语言:javascript
复制
package com.java4all.rabbitmq1;

import com.java4all.entity.User;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * Author: momo
 * Date: 2018/6/15
 * Description:消息生产者
 */
@Component
public class Producer1 {

    @Autowired
    RabbitTemplate rabbitTemplate;

    /**发送消息*/
    public void produce1(User user){
        rabbitTemplate.convertAndSend("queue1",user);
    }

}

5.消息消费者

监听指定的队列,接收到消息后进行处理。

代码语言:javascript
复制
package com.java4all.rabbitmq1;

import com.java4all.entity.User;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.context.annotation.Configuration;

import java.time.LocalTime;

/**
 * Author: momo
 * Date: 2018/6/15
 * Description:消息消费者
 */
//监听队列queue1
@Configuration
@RabbitListener(queues = "queue1")
public class Consumer1 {

    /**接收到信息后进行消费(处理)*/
    @RabbitHandler
    public void process1(User user){
        System.out.println("Consumer1:"+ LocalTime.now()+"----"+user.toString());
    }
}

6.测试

代码语言:javascript
复制
package com.java4all.rabbitmq1;

import com.java4all.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**
 * Author: momo
 * Date: 2018/6/15
 * Description:
 */
@RestController
@RequestMapping(value = "mq1")
public class UserController1 {

    @Autowired
    Producer1 producer1;

    @RequestMapping(value = "getUser1",method = RequestMethod.GET)
    public void getUser1(){
        for (int i = 0; i < 100; i++) {
            User user = new User();
            user.setId(i);
            user.setUserName("name"+i);
            user.setRealName("realName"+i);
            user.setPassword("0000"+i);
            //生产消息
            producer1.produce1(user);

            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

7.访问控制台

访问接口:http://localhost:8088/mq1/getUser1  然后访问控制台(centOs安装rabbitMQ 有配置控制台的步骤):结果如下 

640?wx_fmt=png
640?wx_fmt=png

备注:

centOS安装rabbitMQ:

https://blog.csdn.net/weixin_39800144/article/details/80696372

640?wx_fmt=gif
640?wx_fmt=gif
640?wx_fmt=png
640?wx_fmt=png

与其相忘江湖,不如点赞关注

本文为  java4all (公众号:java4all)原创

谢谢!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年03月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 主要步骤如下:
  • 1.引入依赖
  • 2.配置文件
  • 3.队列,路由配置
  • 4.消息生产者
  • 5.消息消费者
  • 7.访问控制台
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档