springboot整合rabbitmq

本文详细介绍如何在项目中集成并使用RabbitMQ,包括安装步骤、配置依赖、设置队列、编写生产者与消费者代码,以及如何进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rabbitmq的简介和好处这里就不说啦,一堆巴拉巴拉,这里有个大神的链接可以了解一下

点我点我~~~

然后是我在项目里用到的rabbitmq,简单记录一下

  1. 安装rabbitmq

    安装的详细步骤可以到这里看一下 rabbitmq安装步骤
    全部安装成功之后,开始配置啦。

  2. 导入依赖 pom.xml

		<!-- RabbitMQ -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
  1. 配置application.yml文件
spring:
	rabbitmq:  #rabbitmq 消息队列
	    host: localhost
	    port: 5672
	    username: root
	    password: root
	    virtual-host: /
登录rabbitmq网页端的时候,port为15672,在写配置的时候要把“1”去掉,不然会报错
这里的username和password是我新增的具有管理权限的用户,rabbitmq中两者最初默认为均为guest
  1. 编写rabbitmq的配置类
	/**
	 * RabbitMQ 配置类,配置订阅发布模式
	 * @author ...
	 * @date 2019-04-29
	 */
	@Configuration
	public class RabbitMQConfigration {

    /**
     * 配置队列1
     * @return Queue
     */
    @Bean
    public Queue queue(){
        return new Queue("step");
    }

    /**
     * 配置队列2
     * @return Queue
     */
    @Bean
    public Queue cuttingPositionQueue(){
        return new Queue("cuttingPosition");
    }
}

Queue,作为消息的载体,可以使每个消息被发送到队列中

  1. 生产者
/**
 * rabbitMq 生产者
 * @author ...
 */
@RestController
public class Product {
    /** 日志 */
    private static final Logger logger = LoggerFactory.getLogger(Product.class);

    @Autowired
    private AmqpTemplate rabbitTemplate;

    /**
     * 发送...
     * @param msg 
     */
    public void sender(String msg){
        logger.info("========================队列step 发送消息:"+msg+"==========================");
        rabbitTemplate.convertAndSend("step",msg);
        logger.info("======================== 队列step 发送消息成功 ==========================");
    }

    public void sendCuttingPosition(String msg){
        logger.info("========================队列cuttingPosition 发送消息:"+msg+"==========================");
        rabbitTemplate.convertAndSend("cuttingPosition",msg);
        logger.info("======================== 队列cuttingPosition 发送消息成功 ==========================");
    }
}
  1. 消费者

	/**
	 * 接收者 测试用
	 */
	@Component
	public class receive {

    /** 日志 */
    private static final Logger logger = LoggerFactory.getLogger(receive.class);

    @RabbitListener(queues = "step")
    @RabbitHandler
    public void receive(String msg){
        logger.info("stepList 接收消息:"+msg);
    }

    @RabbitListener(queues = "cuttingPosition")
    @RabbitHandler
    public void receiveCuttingPosition(String msg){
        logger.info("cuttingPosition 接收消息:"+msg);
    }
}
  1. 测试
    只要在需要发送消息的时候,调用生产者内的方法即可:
	/** rabbitmq */
	@Autowired
	private Product product;
	
	...
	// 定义消息
	String position = "123456789测试rabbitmq987654321";
	// 通过rabbitmq发布
	product.sendCuttingPosition(position);
  1. 这里用的是生产者内的第二个方法,测试结果如下
    在这里插入图片描述
    完成!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值