RabbitMQ 的快速使用

news2024/11/28 7:41:44

docker部署rabbitmq

 # management才有管理页面
docker pull rabbitmq:management

# 新建容器并运行
docker run \
 -e RABBITMQ_DEFAULT_USER=admin \ 
 -e RABBITMQ_DEFAULT_PASS=admin \ 
 -v mq-plugins:/plugins \
 --name mq \
 --hostname mq \
 -p 15672:15672 \
 -p 5672:5672 \
 -itd \
 rabbitmq:management

# 查看运行状态
docker ps -a

 


 

导入RabbitMQ依赖

pom.xml

<!--AMQP依赖,包含RabbitMQ-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

 

提供者和消费者的配置

application.yml

spring:
  rabbitmq:
    host: 192.168.137.139 # 主机名
    port: 5672 # 端口
    virtual-host: / # 虚拟主机
    username: admin # 用户名
    password: admin # 密码

 

注意执行顺序:需要先使用consumer监听并创建队列,publisher再往里面添加队列才会有用,否则白添加队列

 


 

SimpleQueue

在这里插入图片描述

提供者: SimpleQueuePublisher.java

@RunWith(SpringRunner.class)
@SpringBootTest
public class SimpleQueuePublisher {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    public void simpleQueueTest() {
        String msg = "hello, simple queue";
        rabbitTemplate.convertAndSend("simple.queue", msg);
    }
}

消费者:SimpleQueueConsumer.java

@Component
public class SimpleQueueConsumer {
    @RabbitListener(queues = "simple.queue")
    public void simpleQueueConsumer(String msg) {
        System.out.println("simpleQueueConsumer: " + msg);
    }
}

 


 

Work Queues

在这里插入图片描述

可加配置

application.yml

spring:
  rabbitmq:
    listener:
      simple: # simple类型
        prefetch: 1 # consumer每次执行预取的数量

消费者:WorkQueueConsumer.java

@Component
public class WorkQueueConsumer {
    @RabbitListener(queuesToDeclare = {@Queue(name = "work.queue")})
    public void workQueue1Consumer(String msg) throws InterruptedException {
        System.out.println("workQueue1Consumer: " + msg);
        Thread.sleep(10);
    }

    @RabbitListener(queuesToDeclare = {@Queue(name = "work.queue")})
    public void workQueue2Consumer(String msg) throws InterruptedException {
        System.out.println("workQueue2Consumer: " + msg);
        Thread.sleep(90);
    }
}

提供者: WorkQueuePublisher.java

@RunWith(SpringRunner.class)
@SpringBootTest
public class WorkQueuePublisher {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    public void workQueueTest() {
        for (int i = 1; i <= 100; i ++ ) {
            String msg = "hello, work queue. " + i;
            rabbitTemplate.convertAndSend("work.queue", msg);
        }
    }
}

 


 

发布/订阅

Direct

在这里插入图片描述

 


Routing

在这里插入图片描述

 


Topics

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/952227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

客服系统哪个好用?

在当今竞争激烈的商业环境中&#xff0c;良好的客户服务是企业成功的关键因素之一。通过提供优质的客户服务&#xff0c;企业可以吸引、留住、回馈顾客&#xff0c;增加口碑宣传&#xff0c;提高产品或服务质量&#xff0c;同时还可以减少客户投诉率&#xff0c;从而为企业带来…

docker容器运行成功但无法访问,原因分析及对应解决方案(最新,以Tomcat为例,亲测有效)

原因分析&#xff1a; 是否能访问当运行docker容器虚拟机&#xff08;主机&#xff09;地址 虚拟机对应的端口号是否开启或者防墙是否关闭 端口映射是否正确&#xff08;这个是我遇到的&#xff09; tomcat下载的是最新版&#xff0c;docker运行后里面是没有东西的&am…

跨屏无界 | ZlongGames 携手 Google Play Games 打造无缝游戏体验

一款经典游戏&#xff0c;会在时间的沉淀中被每一代玩家所怀念&#xff0c;经久不衰。对于紫龙游戏来讲&#xff0c;他们就是这样一群怀揣着创作出经典游戏的初心而聚集在一起的团队&#xff0c;致力于研发出被广大玩家喜爱的作品。 从 2015 年团队成立&#xff0c;到 2019 年走…

DHCP实验

文章目录 一、实验背景与目的二、实验拓扑三、 实验需求四、实验解法1. R1配置IP地址部分2. 配置R1的DHCP服务3. 配置IP地址排除4. 配置PC3和PC4的IP地址为自动获取&#xff0c;然后可以自动获得192.168.1.0/24网段的IP地址。 摘要&#xff1a; 本实验旨在通过配置DHCP服务器和…

2023-8-30 Dijkstra 求最短路(一)

题目链接&#xff1a;Dijkstra求最短路 I #include <iostream> #include <cstring> #include <algorithm>using namespace std;const int N 510;int n, m; int g[N][N]; int dist[N]; bool st[N];int dijkstra() {memset(dist, 0x3f, sizeof dist);dist[1…

【力扣每日一题】2023.8.30 到家的最少跳跃次数

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一只跳蚤&#xff0c;我们可以操控它前跳 a 格或是后跳 b 格&#xff0c;不能跳到小于0的位置&#xff0c;有一些被禁止的点不…

Gradio入门(1)输入输出、表格、文本高亮

本文将会介绍gradio的入门使用&#xff0c;并结合大模型&#xff08;LLM&#xff09;&#xff0c;给出三个使用例子。   Gradio 是通过友好的 Web 界面演示机器学习模型的最快方式&#xff0c;以便任何人都可以在任何地方使用它。其官网网址为&#xff1a;https://www.gradio…

1978-2022年全国整体GDP平减指数计算模板(可任意调整基期)

1978-2022年全国整体GDP平减指数计算模板&#xff08;可任意调整基期&#xff09; 1、时间区间&#xff1a;1978-2022年 2、指标&#xff1a;名义GDP、实际GDP、GDP平减指数 3、中国GDP平减指数计算公式可以给定基期&#xff0c;自动计算平减指数&#xff0c;可根据需要任意…

易混淆的符号

C自学精简教程 目录(必读) &符号在C中有多个含义。 下面我们列出常见的3种&#xff0c;你都能分得清吗&#xff1f; #include <iostream> using namespace std;//传递引用类型的参数 pass by reference void fun(int& a)//(1) 这里的 & 表示参数a是引用类…

加速度传感器术语解析

一、加速度单位 g 一般用g表示加速度&#xff0c;g即为重力加速度9.8米/秒的平方 如上图表示了加速度传感器的量程范围&#xff0c;可选为2g&#xff0c;4g&#xff0c;8g&#xff0c;16g,即对应19.6米/秒的平方、39.2米/秒的平方、78.4米/秒的平方、156.8米/秒的平方。 二、…

k8s(kubernetes)介绍篇

一、Kubernetes 是什么 Kubernetes 是一个全新的基于容器技术的分布式架构解决方案&#xff0c;是 Google 开源的一个容器集群管理系统&#xff0c;Kubernetes 简称 K8S。 Kubernetes 是一个一站式的完备的分布式系统开发和支撑平台&#xff0c;更是一个开放平台&#xff0c;对…

docker linux(centos 7) 安装

这是个目录 1:安装1:手动安装(适用于centos7)之一2:手动安装(适用于centos7)之二3&#xff1a;一键安装docker4:二进制安装1&#xff1a;下载二进制包2&#xff1a;解压3&#xff1a;移动文件4&#xff1a;后台运行docker5&#xff1a;测试 dicker命令表999&#xff1a;遇到的问…

C语言每日一练--------Day(8)

本专栏为c语言练习专栏&#xff0c;适合刚刚学完c语言的初学者。本专栏每天会不定时更新&#xff0c;通过每天练习&#xff0c;进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字&#xff1a;图片整理 寻找数组下标 &#x1f493;博主csdn个人主页&#xff1a;小小…

二十、观察者模式

一、什么是观察者模式 观察者&#xff08;Observer&#xff09;模式的定义&#xff1a;指多个对象间存在一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式&…

苹果秋季发布会,北京时间9月13日

苹果公司宣布&#xff0c;将于当地时间9月12日&#xff08;北京时间9月13日&#xff09;召开新闻发布会&#xff0c;发布会将于美东时间下午1点&#xff08;北京时间凌晨1点&#xff09;在苹果官网上进行直播&#xff0c;预计苹果届时将在会上发布iPhone 15系列和新款苹果手表。…

如何制作并运行 jar 程序

以下是用 Intellij 制作 jar 程序&#xff0c;并运行的方法。 【1】新建工程&#xff0c;保持默认选项&#xff0c;Next 【2】保持默认选项&#xff0c;Next 【3】给工程命名&#xff0c;设置保存位置&#xff0c;Finish 【4】新建工程结束&#xff0c;进入开发界面 【5】展开…

Spring源码分析(七)不同作用域下Bean的创建

目录 1.1 单例模式的实例化1.1.1 从缓存中获取1.1.2 前置处理1.1.3 获取Bean1.1.4 后置处理1.1.5 加入缓存 1.2 原型模式实例化1.3 其他模式实例化 官网&#xff1a;Home参考书籍&#xff1a;Spring源码深度解析-郝佳编著-微信读书 上一篇文章我们分析到不同的作用域创建Bean&…

推荐两款开源的绘制流程图软件

一句话导读 目前流程图绘制软件非常多&#xff0c;包括本机安装的、web端的都有&#xff0c;如Visio、Graphviz、processOn等等。但是几乎都是收费的。本文给大家介绍两款优秀的开源免费的流程图绘制软件。 目录 一句话导读 一、draw.io 二、Meta2d.js ​1.为什么使用 2.…

权限提升-PostgreSQL数据库提权+第三方应用提权

权限提升基础信息 1、具体有哪些权限需要我们了解掌握的&#xff1f; 后台权限&#xff0c;网站权限&#xff0c;数据库权限&#xff0c;接口权限&#xff0c;系统权限&#xff0c;域控权限等 2、以上常见权限获取方法简要归类说明&#xff1f; 后台权限&#xff1a;SQL注入,数…

关于两个不同数据库的两张表建立数据库链接,关联查询数据

一、数据库链接 数据库链接&#xff08;database link&#xff09;是用于跨不同数据库之间进行连接和数据传输的工具或方法。它允许在一个数据库中访问另一个数据库中的对象和数据。 二、具体操作 以Oracle数据库为例 --1.建立链接tjpt CREATE DATABASE LINK tjpt CONNECT…