当前位置: 首页 > news >正文

RabbitMQ-SpringBoot2

1.依赖引用

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

2.配置文件

spring:
  rabbitmq:
    host: 192.168.2.17
    port: 5672
    username: admin
    password: admin

3.配置类

这个类可以没有,但总提示,看着闹心

package com.example.rabbitmq.cluster;import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class ClusterConfig {public static final String queueName = "cluster.queue";public static final String exchangeName = "cluster.exchange";public static final String keyName = "cluster.key";@Bean("clusterQueue")public Queue queue() {Queue queue = QueueBuilder.durable(queueName).build();return queue;}@Bean("clusterDirectExchange")public DirectExchange directExchange() {DirectExchange exchange = ExchangeBuilder.directExchange(exchangeName).build();return exchange;}@Beanpublic Binding binding(@Qualifier("clusterQueue") Queue queue,@Qualifier("clusterDirectExchange") DirectExchange directExchange) {return BindingBuilder.bind(queue).to(directExchange).with(keyName);}}

4.消费者

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;@Slf4j
@Component
public class ClusterConsumer {@RabbitListener(queues = ClusterConfig.queueName)public void receiveMsg(Message message){String msg = new String(message.getBody());log.info("[ClusterConsumer] 收到消息:{}", msg);}}

5.生产者

package com.example.rabbitmq.cluster;import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;@Slf4j
@RequestMapping("clu")
@RestController
public class ClusterController {private RabbitTemplate rabbitTemplate;public ClusterController(RabbitTemplate rabbitTemplate) {this.rabbitTemplate = rabbitTemplate;}@GetMapping("v1")public String v1() {rabbitTemplate.convertAndSend(ClusterConfig.exchangeName, ClusterConfig.keyName, "Cluster111");log.info("已经发送 Cluster111");return "已经发送 Cluster111";}}

6.测试

http://www.lryc.cn/news/113778.html

相关文章:

  • MyBatis核心 - SqlSession如何通过Mapper接口生成Mapper对象
  • 【Git】标签管理与Git Flow模型
  • 日志分析和流量分析
  • typescript基础之关键字type
  • 无人机航测技术有何特点?主要应用在哪些方面?
  • 24届近5年杭州电子科技大学自动化考研院校分析
  • 调整vscode
  • Spring xml 方式整合mybatis 第三方框架
  • RabbitMQ(二) - RabbitMQ与消息发布确认与返回、消费确认
  • 操作指南 | 如何使用Chainlink喂价功能获取价格数据
  • Pandaer的iPhone手机壳
  • 将自己的网站免费发布到互联网上【无需公网IP】
  • 浅谈 Python中if __name__ == ‘__main__‘:的工作原理
  • 【力扣】344. 反转字符串 <首尾指针>
  • Kubectl 详解
  • 华为OD面试记录
  • 电源控制--品质因素Q值全解
  • 实际工作中通过python+go-cqhttp+selenium实现自动检测维护升级并发送QQ通知消息(程序内测)
  • EC200 CAT1 拨号PPP
  • 外网通过ipv6访问家里设备
  • docker 如何使用代理
  • Go和Java实现装饰器模式
  • Android中级——RemoteView
  • SpringBoot核心内容梳理
  • Benchmarking Augmentation Methods for Learning Robust Navigation Agents 论文阅读
  • 面试题:HTTP Code码及应用场景分析
  • The ‘kotlin-android-extensions‘ Gradle plugin is no longer supported.
  • vi 编辑器入门到高级
  • 【大数据】Flink 详解(二):核心篇 Ⅰ
  • Day 75:通用BP神经网络 (2. 单层实现)