| |
|
开发:
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是什么?带你快速了解 |
一、首先了解AMQP简介? AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是进程之间传递异步消息的网络协议。 AMQP工作过程发布者(Publisher)发布消息(Message),经过交换机(Exchange),交换机根据路由规则将收到消息分发给交换机绑定的队列(Queue),最后AMQP代理会将消息投递给订阅了此队列的消费者,或者消费者按照需求自行获取。 3队列? 队列是数据结构中概念。数据存储在一个队列中,数据是有顺序的,先进的先出,后进后出。其中一侧负责进数据,另一侧负责出数据。 MQ(消息队列)很多功能都是基于此队列结构实现的! 二、RabbitMQ简介1 RabbitMQ介绍 1.1 解决应用耦合 ? 排队算法 : 使用消息队列特性 ? 秒杀活动 : 使用消息队列特性 ? 消息分发 : 使用消息异步特性 ? 异步处理 : 使用消息异步特性 ? 数据同步 : 使用消息异步特性 ? 处理耗时任务 : 使用消息异步特性? 流量销峰 三、 RabbitMQ原理
2.Publisher
3.Consumer
4.Exchange
5.Binding
6.Queue
7.Routing-key
8.Connection
9.Channel
10.Virtual Host
11.Borker
12.交换器和队列的关系
13.RabbitMQ为什么需要信道?为什么不是TCP直接通信?
四、Erlang的安装
1 修改主机名? RabbitMQ是通过主机名进行访问的,必须指定能访问的主机名。
2 安装依赖
1、上传并解压 ? 上传otp_src_22.0.tar.gz到/usr/local/tmp目录中,进入目录并解压。
链接:https://pan.baidu.com/s/188CAFq3Wyi_XZYAAeqqdvA 2 配置参数 ? 先新建/usr/local/erlang文件夹,作为安装文件夹
? 进入文件夹
? 配置参数
3 编译并安装? 编译
? 安装
4 修改环境变量? 修改/etc/profile文件 vim /etc/profile
? 运行文件,让修改内容生效
5 查看配置是否成功
五、安装RabbitMQ链接:https://pan.baidu.com/s/19OHe0fEUKAE312l6XQx0Uw 1 上传并解压? 上传rabbitmq-server-generic-unix-3.7.18.tar.xz到/usr/loca/tmp中
2 复制到local下? 复制解压文件到/usr/local下,命名为rabbitmq
3 配置环境变量
? 在文件中添加:
? 解析文件
4 开启web管理插件? 进入rabbitmq/sbin目录
查看插件列表
生效管理插件
5 后台运行? 启动rabbitmq。
? 停止命令,如果无法停止,使用kill -9 进程号进行关闭
6 查看web管理界面? 默认可以在安装rabbitmq的电脑上通过用户名:guest密码guest进行访问web管理界面 ? 端口号:15672(放行端口,或关闭防火墙) ? 在虚拟机浏览器中输入: ? http://localhost:15672 访问成功:如下图
六、RabbitMq账户管理1 创建账户
进入到sbin目录
创建用户名和密码
2 给用户授予管理员角色? 其中smallming为新建用户的用户名
3 给用户授权? “/” 表示虚拟机 ? zhongjiawei 表示用户名 ? “.” “.” “.*” 表示完整权限
4 登录? 使用新建账户和密码在windows中访问rabbitmq并登录 ? 在浏览器地址栏输入: ? http://ip:15672/ 用户名:zhongjiawei 登录成功:如下图 七、 交换器(交换机)? 交换器负责接收客户端传递过来的消息,并转发到对应的队列中。在RabbitMQ中支持四种交换器 ? 1.Direct Exchange:直连交换器(默认) ? 2.Fanout Exchange:扇形交换器 ? 3.Topic Exchange:主题交换器 ? 4.Header Exchange:首部交换器。 ? 在RabbitMq的Web管理界面中Exchanges选项卡就可以看见这四个交换器。 1 direct交换器? direct交换器是RabbitMQ默认交换器。默认会进行公平调度。所有接受者依次从消息队列中获取值。Publisher给哪个队列发消息,就一定是给哪个队列发送消息。对交换器绑定的其他队列没有任何影响。 ? (代码演示)一个队列需要绑定多个消费者 ? 需要使用注解/API: ? org.springframework.amqp.core.Queue:队列 ? AmqpTemplate:操作RabbitMQ的接口。负责发送或接收消息 ? @RabbitListener(queues = “”) 注解某个方法为接收消息方法 1.1 代码实现1.1.1 新建项目Publisher 1.1.1.1 添加依赖
1.1.1.2 编写配置文件? 新建application.yml. ? host:默认值localhost ? username默认值:guest ? password默认值:guest
1.1.1.3 编写配置类新建com.config.RabbitmqConfig ? 队列的创建只有没有这个队列的时候需要编写。以后没有这个queue()方法也可以。
1.1.1.4 编写启动类略,就是Spring Boot启动类 1.1.1.5 编写测试类SpringBoot整合Spring-AMQP后包含内置对象AmqpTemplate
1.1.2 创建Consumer ? 新建项目consumer 1.1.2.1 添加依赖 ? 和Publisher一样 1.1.2.2 编写配置文件 ? 和Publisher一样 1.1.2.3 编写监听器方法 ? 注意: ? 类上要有@Componet,项目启动时此类生效。 ? @RabbitListener 监听指定队列。
1.1.2.4 新建启动类 ? 略。启动后此项目一直处于运行状态。属于长连接。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/22 9:02:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |