(16)SpringBoot整合RabbitMQ
发布日期:2021-06-30 11:08:09 浏览次数:2 分类:技术文章

本文共 3408 字,大约阅读时间需要 11 分钟。

640?wx_fmt=jpeg

图片来源:pexels网站
640?wx_fmt=png
640?wx_fmt=png

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

主要步骤如下:

1.引入依赖

2.配置文件

3.队列,路由配置

4.消息生产者

5.消息消费者

6.测试

7.User实体 

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

1.引入依赖

    
org.springframework.boot
    
spring-boot-starter-amqp

2.配置文件

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

# 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.队列,路由配置

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

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.消息生产者

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.消息消费者

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

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.测试

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

备注:

centOS安装rabbitMQ:

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

640?wx_fmt=gif
640?wx_fmt=png

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

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

欢迎转载,请注明出处或文末给出二维码

谢谢!

转载地址:https://it4all.blog.csdn.net/article/details/89037698 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:(12)SpringBoot使用Thymeleaf开发web页面
下一篇:(9)SpringBoot使用JdbcTemplate访问数据库

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月24日 14时20分53秒