更新时间:2020-11-09 15:45:52 来源:动力节点 浏览1244次
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
动力节点Java培训的RabbitMQ视频教程,本课程将讲授RabbitMQ的环境搭建、消息的发送与接收、消息确认、与SpringBoot集成等,让大家快速掌握RabbitMQ技术,以适应项目开发的需要;
课程学习目录
1.RabbitMQ:什么是消息队列
2.RabbitMQ:为什么使用消息队列
3.RabbitMQ:RabbitMQ的特点
4.RabbitMQ:安装RabbitMQ
5.RabbitMQ:启动和关闭服务
6.RabbitMQ:插件添加
7.RabbitMQ:用户管理
8.RabbitMQ:权限分配
9.RabbitMQ:vhost
10.RabbitMQ:AMQP协议机制
11.RabbitMQ:消息路由交换机类型
12.RabbitMQ:Direct类型交换机
13.RabbitMQ:Fanout类型交换机
14.RabbitMQ:Topic类型交换机
15.RabbitMQ:消息发送
16.RabbitMQ:消息发送测试
17.RabbitMQ:消息接收
18.RabbitMQ:消息接收测试
19.RabbitMQ:交换机-direct-消息接收
20.RabbitMQ:交换机-direct-消息发送
21.RabbitMQ:交换机-fanout-消息接收
22.RabbitMQ:交换机-fanout-消息发送
基础概念
讲解基础概念的前面,我们先来整体构造一个结构图,这样会方便们更好地去理解RabbitMQ的基本原理。
通过上面这张应用相结合的结构图既能够清晰的看清楚整体的send Message到Receive Message的一个大致的流程。当然上面有很多名词都相比还没有介绍到,不要着急接下来我们就开始对其进行详细的讲解。
Queue
Queue(队列)RabbitMQ的作用是存储消息,队列的特性是先进先出。上图可以清晰地看到Client A和Client B是生产者,生产者生产消息最终被送到RabbitMQ的内部对象Queue中去,而消费者则是从Queue队列中取出数据。可以简化成表示为:
生产者Send Message“A”被传送到Queue中,消费者发现消息队列Queue中有订阅的消息,就会将这条消息A读取出来进行一些列的业务操作。这里只是一个消费正对应一个队列Queue,也可以多个消费者订阅同一个队列Queue,当然这里就会将Queue里面的消息平分给其他的消费者,但是会存在一个一个问题就是如果每个消息的处理时间不同,就会导致某些消费者一直在忙碌中,而有的消费者处理完了消息后一直处于空闲状态,因为前面已经提及到了Queue会平分这些消息给相应的消费者。这里我们就可以使用prefetchCount来限制每次发送给消费者消息的个数。详情见下图所示:
这里的prefetchCount=1是指每次从Queue中发送一条消息来。等消费者处理完这条消息后Queue会再发送一条消息给消费者。
Exchange
我们在开篇的时候就留了一个坑,就是那个应用结构图里面,消费者Client A和消费者Client B是如何知道我发送的消息是给Queue1还是给Queue2,有没有过这个问题,那么我们就来解开这个面纱,看看到底是个什么构造。首先明确一点就是生产者产生的消息并不是直接发送给消息队列Queue的,而是要经过Exchange(交换器),由Exchange再将消息路由到一个或多个Queue,当然这里还会对不符合路由规则的消息进行丢弃掉,这里指的是后续要谈到的Exchange Type。那么Exchange是怎样将消息准确的推送到对应的Queue的呢?那么这里的功劳最大的当属Binding,RabbitMQ是通过Binding将Exchange和Queue链接在一起,这样Exchange就知道如何将消息准确的推送到Queue中去。简单示意图如下所示:
以上就是对“Rabbitmq视频教程,极速掌握知识”的介绍,希望对大家有所帮助,还想学习更多关于Java的课程,可以关注动力节点官网Java视频教程,免费下载学习。
0基础 0学费 15天面授
有基础 直达就业
业余时间 高薪转行
工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习