day01 RabbitMQ-day01_第1页
day01 RabbitMQ-day01_第2页
day01 RabbitMQ-day01_第3页
day01 RabbitMQ-day01_第4页
day01 RabbitMQ-day01_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

RabbitMQ基础 Contents 目 录 MQ的基本概念RabbitMQ的安装和配置RabbitMQ快速入门RabbitMQ的工作模式Spring整合RabbitMQSPringBoot整合RabbitMQ 理解 能够说出什么是消息队列 应用 能够安装RabbitMQ 掌握 能够编写RabbitMQ的入门程序 理解 能够说出RabbitMQ的5种模式特征 应用 能够使用Spring整合RabbitMQ 应用 能够使用SpringBoot整合RabbitMQ 目标 TARGET MQ重要性 要点提示 MQ重要性 掌握程度 了解 01 MQ重要性 什么是消息队列 要点提示 MQ概述 掌握程度 了解 02 MQ概述 02 MQ概述 课堂问答 知识总结 MQ全称MessageQueue 消息队列 是在消息的传输过程中保存消息的容器 多用于分布式系统之间进行通信 A系统 B系统 MQ 生产者 消费者 中间件 MQ主要是解决什么问题的 要点提示 MQ的优势 掌握程度 掌握 03 MQ的优势 03 MQ优势 课堂问答 知识总结 应用解耦 提高系统容错性和可维护性异步提速 提升用户体验和系统吞吐量削峰填谷 提高系统稳定性 优势 MQ劣势是什么 要点提示 MQ的劣势 掌握程度 了解 04 MQ的劣势 04 MQ优势 课堂问答 知识总结 劣势 生产者不需要从消费者处获得反馈 引入消息队列之前的直接调用 其接口的返回值应该为空 这才让明明下层的动作还没做 上层却当成动作做完了继续往后走 即所谓异步成为了可能 容许短暂的不一致性 确实是用了有效果 即解耦 提速 削峰这些方面的收益 超过加入MQ 管理MQ这些成本 既然MQ有优势也有劣势 那么使用MQ需要满足什么条件呢 MQ消息通信模型有几种 要点提示 常见的MQ产品 掌握程度 了解 05 常见的MQ产品 05 常见的MQ产品 课堂问答 知识总结 RabbitMQ是基于什么通信协议的 要点提示 RabbitMQ概述 掌握程度 了解 06 RabbitMQ概述 06 RabbitMQ概述 课堂问答 知识总结 RabbitMQ是基于AMQP协议使用Erlang语言开发的一款消息队列产品 RabbitMQ提供了6种工作模式 我们学习5种 这是今天的重点 AMQP是协议 类比HTTP JMS是API规范接口 类比JDBC 安装及配置rabbitmq 要点提示 RabbitMQ安装 掌握程度 应用 07 RabbitMQ安装 安装及配置rabbitmq 要点提示 RabbitMQ管控台使用 掌握程度 应用 08 RabbitMQ管控台使用 08 安装及配置RabbitMQ 课堂问答 知识总结 分析 安装erlang 安装rabbitMQ 安装RabbitMQ的图形管理界面插件 创建管理用户 创建虚拟主机VirtualHosts小结 安装上述的组件时候都需要使用以管理员身份运行 搭建编写rabbitmq入门案例的步骤 要点提示 RabbitMQ快速入门 生产者 掌握程度 理解 09 RabbitMQ快速入门 生产者 09 RabbitMQ快速入门 生产者 课堂问答 知识总结 总结 入门工程 生产者发送消息到RabbitMQ的队列 simple queue 消费者可以从队列中获取消息 可以使用RabbitMQ的简单模式 simple 生产者实现发送消息的步骤 创建连接工厂 设置RabbitMQ的连接参数 创建连接 创建频道 声明队列 发送消息 关闭资源 搭建编写rabbitmq入门案例的步骤 要点提示 RabbitMQ快速入门 消费者 掌握程度 理解 10 RabbitMQ快速入门 消费者 10 RabbitMQ快速入门 消费者 课堂问答 知识总结 总结 从RabbitMQ中队列 与生产者发送消息时的队列一致 simple queue 接收消息 实现消费者步骤 创建连接工厂 创建连接 抽取一个获取连接的工具类 创建频道 声明队列 创建消费者 接收消息并处理消息 监听队列 10 RabbitMQ快速入门 课堂问答 知识总结 分析 生产者 发送消息到RabbitMQ队列 simple queue 消费者 接收RabbitMQ队列消息小结 简单模式 生产者发送消息到队列中 一个消费者从队列中接收消息 在RabbitMQ中消费者只能从队列接收消息 如果接收消息的消费者在同一个队列中有两个或多个时 消息是如何分配的 10 RabbitMQ快速入门 课堂问答 知识总结 上述的入门案例中其实使用的是如下的简单模式 在上图的模型中 有以下概念 P 生产者 也就是要发送消息的程序C 消费者 消息的接收者 会一直等待消息到来queue 消息队列 图中红色部分 类似一个邮箱 可以缓存消息 生产者向其中投递消息 消费者从其中取出消息 P C 上午复习 说出什么是消息队列 上午复习 说出什么是消息队列 消息队列是应用程序之间的通信方法 无需即时返回的且耗时的操作进行异步处理从而提高系统的吞吐量 可以实现程序之间的解耦合 实现方式 AMQP JMS 常见产品 activeMQ zeroMQ RabbitMQ RocketMQ kafka Workqueues工作队列模式介绍 要点提示 RabbitMQ工作模式 WorkQueues 掌握程度 理解 11 RabbitMQ工作模式 WorkQueues 11 RabbitMQ工作模式 WorkQueues 课堂问答 知识总结 分析 工作队列模式 在同一个队列中可以有多个消费者 消费者之间对于消息的接收是竞争关系 生产者 发送30个消息消费者 创建两个消费者监听同一个队列 查看两个消费者的接收消息是否存在重复 小结 工作队列模式 一个消息只能被一个消费者接收 其它消费者是不能接收到同一条消息的 应用场景 可以在消费者端处理任务比较耗时的时候 添加对同一个队列的消费者来提高任务处理能力 发布订阅模式设置交换机类型 要点提示 RabbitMQ工作模式 PubSub生产者 掌握程度 理解 12 RabbitMQ工作模式 PubSub生产者 12 订阅模式类型说明 课堂问答 知识总结 小结 订阅模式与前面的两种模式比较 多了一个角色Exchange交换机 接收生产者发送的消息并决定如何投递消息到其绑定的队列 消息的投递决定于交换机的类型 交换机类型 广播 fanout 定向 direct 通配符 topic 交换机只做消息转发 自身不存储数据 发布与订阅模式 要点提示 RabbitMQ工作模式 PubSub消费者 掌握程度 理解 13 RabbitMQ工作模式 PubSub消费者 13 发布与订阅模式 课堂问答 知识总结 发布与订阅模式特点 一个消息可以被多个消费者接收 其实是使用了订阅模式 交换机类型为 fanout广播生产者 发送10个消息 创建连接 创建频道 声明交换机 fanout 声明队列 队列绑定到交换机 发送消息 关闭资源消费者 至少两个消费者 创建连接 创建频道 声明交换机 声明队列 队列绑定到交换机 创建消费者 监听队列 13 发布与订阅模式 课堂问答 知识总结 小结 发布与订阅模式 一个消息可以被多个消费者接收 一个消费者对于的队列 该队列只能被一个消费者监听 使用了订阅模式中交换机类型为 广播 Routing路由模式特点 要点提示 RabbitMQ工作模式 Routing 掌握程度 理解 14 RabbitMQ工作模式 Routing 14 RabbitMQ工作模式 Routing 课堂问答 知识总结 分析 生产者 发送两条消息 路由key分别为 insert update 消费者 创建两个消费者 监听的队列分别绑定路由key为 insert update消息中路由key为insert的会被绑定路由key为insert的队列接收并被其监听的消费者接收 处理 消息中路由key为update的会被绑定路由key为update的队列接收并被其监听的消费者接收 处理 小结 Routing路面模式要求队列绑定到交换机的时候指定路由key 消费发送时候需要携带路由key 只有消息的路由key与队列路由key完全一致才能让该队列接收到消息 Topics通配符模式介绍 要点提示 RabbitMQ工作模式 Topics 掌握程度 理解 15 RabbitMQ工作模式 Topics 15 RabbitMQ工作模式 Topics 课堂问答 知识总结 分析 生产者 发送包含有item insert item update item delete的3中路由key消息消费者1 监听的队列绑定到交换机的路由key为 item update item delete消费者2 监听的队列绑定到交换机的路由key为 item 小结 Topics通配符模式 可以根据路由key将消息传递到对应路由key的队列 队列绑定到交换机的路由key可以有多个 通配符模式中路由key可以使用 和 使用了通配符模式之后对于路由Key的配置更加灵活 Topic主题模式可以实现Pub Sub发布与订阅模式和Routing路由模式的功能 只是Topic在配置routingkey的时候可以使用通配符 显得更加灵活 RabbitMQ模式总结 要点提示 RabbitMQ工作模式 总结 掌握程度 理解 16 RabbitMQ工作模式 总结 16 RabbitMQ工作模式 总结 课堂问答 知识总结 小结 不直接Exchange交换机 默认交换机 simple简单模式 一个生产者生产一个消息到一个队列被一个消费者接收work工作队列模式 生产者发送消息到一个队列中 然后可以被多个消费者监听该队列 一个消息只能被一个消费者接收 消费者之间是竞争关系使用Exchange交换机 订阅模式 交换机 广播fanout 定向direct 通配符topic 发布与订阅模式 使用了fanout广播类型的交换机 可以将一个消息发送到所有绑定了该交换机的队列路由模式 使用了direct定向类型的交换机 消费会携带路由key 交换机根据消息的路由key与队列的路由key进行对比 一致的话那么该队列可以接收到消息通配符模式 使用了topic通配符类型的交换机 消费会携带路由key 交换机根据消息的路由key与队列的路由key进行对比 匹配的话那么该队列可以接收到消息 Spring整合rabbitmq生产者配置 要点提示 Spring整合RabbitMQ 生产者 掌握程度 理解 17 Spring整合RabbitMQ 生产者 17 Spring整合RabbitMQ 生产者 课堂问答 知识总结 整合总结 搭建消息生产者工程添加POM依赖添加和Spring整合配置文件编写测试类使用RabbitTemplate发送消息 Spring整合rabbitmq消费者配置 要点提示 Spring整合RabbitMQ 消费者 掌握程度 理解 18 Spring整合RabbitMQ 消费者 18 Spring整合RabbitMQ 消费者 课堂问答 知识总结 整合总结 搭建消息生产者工程添加POM依赖添加和Spring整合配置文件编写消息监听类实现MessageListener接口配置文件中添加listener container监听当前Bean Spring整合rabbitmq配置详解 要点提示 Spring整合RabbitMQ 配置详解 掌握程度 理解 19 Spring整合RabbitMQ 配置详解 19 Spring整合RabbitMQ 配置详解 课堂问答 知识总结 rabbit connection factory 配置链接工厂对象 主要是包含用户名 密码 主机 端口 vhost等rabbit admin 定义管理交换机 队列rabbit queue 配置队列id bean的名称name queue的名称auto declare 自动创建auto delete 自动删除 最后一个消费者和该队列断开连接后 自动删除队列exclusive 是否独占durable 是否持久化rabbit fanout exchange 配置交换机为发布订阅类型rabbit bindings 配置将队列绑定到交换机rabbit bindingrabbit direct exchange 配置路由类型交换机rabbit bindingqueue 队列名称 key routingKey rabbit topic exchange 配置topic类型交换机rabbit bindingpattern heima queue spring topic queue star rabbit template 定义rabbitTemplate对象操作可以在代码中方便发送消息rabbit listener container 配置监听容器rabbit listenerref springQueueListener queue names spring queue Springboot整合rabbitmq生产者 要点提示 SpringBoot整合RabbitMQ 生产者 掌握程度 理解 20 SpringBoot整合RabbitMQ 生产者 20 SpringBoot整合RabbitMQ 生产者 课堂问答 知识总结 分析 SpringBoot提供了对于AMQP的整合 可以使用RabbitTemplate发送消息 可以使用 RabbitListener注解接收消息 生产者工程springboot rabbitmq producer 发送消息创建工程 添加依赖 spring boot stater amqp spring boot starter test 创建启动引导类 添加配置文件application yml消费者工程springboot rabbitmq consumer 接收消息创建工程 添加依赖 spring boot stater amqp 创建启动引导类 添加配置文件application yml 20 SpringBoot整合RabbitMQ 生产者 课堂问答 课堂问答 分析 使用通配符模式 将队列绑定到交换机 topic 时需要指定路由key item 配置RabbitMQ的连接参数 主机 连接端口 虚拟主机 用户名 密码 声明交换机 队列并将队列绑定到交换机 指定的路由key item 小结 配置application yml文件 spring rabbitmq host localhostport 5672virtual host itcastusername heimapassword heima 20 SpringBoot整合RabbitMQ 生产者 课堂问答 课堂问答 配置交换机 队列和绑定 创建一个配置类 ConfigurationpublicclassRabbitMQConfig 交换机名称publicstaticfinalStringITEM TOPIC EXCHANGE item topic exchange 队列名称publicstaticfinalStringITEM QUEUE item queue 声明交换机 Bean itemTopicExchange publicExchangetopicExchange returnExchangeBuilder topicExchange ITEM TOPIC EXCHANGE durable true build 声明队列 Bean itemQueue publicQueueitemQueue returnQueueBuilder durable ITEM QUEUE build 将队列绑定到交换机 BeanpublicBindingitemQueueExchange Qualifier itemQueue Queuequeue Qualifier itemTopicExchange Exchangeexchange returnBindingBuilder bind queue to exchange with item noargs 配置消费者工程代码及测试 要点提示 SpringBoot整合RabbitMQ 消费者 掌握程度 应用 21 SpringBoot整合RabbitMQ 消费者 21 SpringBoot整合RabbitMQ 消费者 课堂问答 课堂问答 分析 配置application yml文件 设置RabbitMQ的连接参数 编写消息监听器接收队列 item queue 消息 可以使用注解 RabbitListener接收队列消息小结 配置application yml文件 与生产者工程一致编写监听器类 ComponentpublicclassMyListener 接收队列消息 parammessage接收到的消息 RabbitListener queues item queue publicvoidmyListener1 Stringmessage System ou

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论