IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> RabbitMQ使用教程 -> 正文阅读

[大数据]RabbitMQ使用教程

1、基础性知识文档介绍
关系RabbitMQ的一些使用场景和使用背景,基础性的概念知识,请参考这篇文章 消息队列之 RabbitMQ 。
2、如何在MacOS 上安装RabbitMQ
关于安装,请参考这篇文章,亲测有效。在MacOS 上安装RabbitMQ

这里我使用的是macOS 10.13 版本,启动的时候需要找到RabbitMQ在本地的位置。

启动rabbitmq-server

cd /usr/local/Cellar/rabbitmq/3.7.2/sbin
sudo ./rabbitmq-server

打开浏览器并访问:http://localhost:15672/,并使用默认用户guest登录,密码也为guest。我们可以看到如下图的管理页面:

点击Admin标签,在这里可以进行用户的管理。

3、Springboot集成RabbitMQ
通过在Spring Boot应用中整合RabbitMQ,并实现一个简单的发送、接收消息的例子来对RabbitMQ有一个直观的感受和理解。

在Spring Boot中整合RabbitMQ是一件非常容易的事,因为之前我们已经介绍过Starter POMs,其中的AMQP模块就可以很好的支持RabbitMQ,下面我们就来详细说说整合过程:

在pom.xml中引入如下依赖内容,其中spring-boot-starter-amqp用于支持RabbitMQ。

org.springframework.boot spring-boot-starter-parent 1.3.7.RELEASE org.springframework.boot spring-boot-starter-amqp org.springframework.boot spring-boot-starter-test test 在application.properties中配置关于RabbitMQ的连接和用户信息,用户可以回到上面的安装内容,在管理页面中创建用户。

队列配置

发送者

接收者

测试类中

运行结果:

注意事项:

发送者和接收者的queue name必须一致,不然不能接收。

多个发送者和接收者,接收端仍然会均匀接收到消息。

springboot以及完美的支持对象的发送和接收,不需要格外的配置。

//发送者
public void send(User user) {
System.out.println("Sender object: " + user.toString());
this.rabbitTemplate.convertAndSend(“object”, user);
}

//接收者
@RabbitHandler
public void process(User user) {
System.out.println("Receiver object : " + user);
}
Topic Exchange

topic 是RabbitMQ中最灵活的一种方式,可以根据routing_key自由的绑定不同的队列。 首先对topic规则配置,这里使用两个队列来测试

使用queueMessages同时匹配两个队列,queueMessage只匹配”topic.message”队列

发送send1会匹配到topic.#和topic.message 两个Receiver都可以收到消息,发送send2只有topic.#可以匹配所有只有Receiver2监听到消息

接收者

Fanout Exchange

Fanout 就是我们熟悉的广播模式或者订阅模式,给Fanout交换机发送消息,绑定了这个交换机的所有队列都收到这个消息。

这里使用了A、B、C三个队列绑定到Fanout交换机上面,发送端的routing_key写任何字符都会被忽略:

发送者

接收者

结果如下:

结果说明,绑定到fanout交换机上面的队列都收到了消息

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 09:09:56  更:2021-08-29 09:26:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:59:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码