为了账号安全,请及时绑定邮箱和手机立即绑定

RabbitMQ消息中间件极速入门与实战

难度中级
时长 2小时31分
学习人数
综合评分8.80
50人评价 查看评价
9.3 内容实用
8.4 简洁易懂
8.7 逻辑清晰
  • rabbitMQ简介二

    查看全部
    0 采集 收起 来源:RabbitMQ简介

    2018-12-24

  • rabbitMQ简介

    查看全部
    0 采集 收起 来源:RabbitMQ简介

    2018-12-24

  • 安装rabbitMQ

    查看全部
  • 记录一下,安装过程

    查看全部
  • AMQP协议模型

    查看全部
    0 采集 收起 来源:RabbitMQ简介

    2018-12-17

  • 好好学习
    查看全部
    0 采集 收起 来源:课程导航

    2018-12-13

  • 保障100%消息投递成功设计方案步骤:

    Step 1: 首先把消息信息(业务数据)存储到数据库中,紧接着,我们再把这个消息记录也存储到一张消息记录表里(或者另外一个同源数据库的消息记录表)。

    Step 2:发送异步消息到MQ Broker节点(采用confirm方式发送,会有异步的返回结果)。

    Step 3、4:生产者端接受MQ Broker节点返回的Confirm确认消息结果,然后进行更新消息记录表里的消息状态。比如默认Status = 0 当收到消息确认成功后,更新为1即可!

    Step 5:但是在消息确认这个过程中可能由于网络闪断、MQ Broker端异常等原因导致回送消息失败或者异常(即step2发送消息成功了,但step3失败)。这个时候就需要发送方(生产者)对消息进行可靠性投递了,保障消息不丢失,保障100%的投递成功!(有一种极限情况是闪断,Broker返回的成功确认消息,但是生产端由于网络闪断没收到,这个时候重新投递可能会造成消息重复,需要消费端去做幂等处理)所以我们需要有一个定时任务,(比如每5分钟拉取一下处于中间状态的消息,当然这个消息可以设置一个超时时间,比如超过1分钟 Status = 0 ,也就说明了1分钟这个时间窗口内,我们的消息没有被确认,那么会被定时任务拉取出来)。

    Step 6:接下来我们把中间状态的消息进行重新投递 retry send,继续发送消息到MQ ,当然也可能有多种原因导致发送失败。

    Step 7:我们可以采用设置最大努力尝试次数,比如投递了3次,还是失败,那么我们可以将最终状态设置为Status = 2 ,最后 交由人工解决处理此类问题(或者把消息转储到失败表中)。


    注意:此方案只保证100%投递成功,不保证是否出现多投的情况,需要消费者做幂等。

    查看全部
  • Direct exchange(直连交换机)


    直连型交换机(direct exchange)是根据消息携带的路由键(routing key)将消息投递给对应队列的,步骤如下:


    将一个队列绑定到某个交换机上,同时赋予该绑定一个路由键(routing key)

    当一个携带着路由值为R的消息被发送给直连交换机时,交换机会把它路由给绑定值同样为R的队列。

    Fanout exchange(扇型交换机)


    扇型交换机(funout exchange)将消息路由给绑定到它身上的所有队列。不同于直连交换机,路由键在此类型上不启任务作用。如果N个队列绑定到某个扇型交换机上,当有消息发送给此扇型交换机时,交换机会将消息的发送给这所有的N个队列


    Topic exchange(主题交换机)


    主题交换机(topic exchanges)中,队列通过路由键绑定到交换机上,然后,交换机根据消息里的路由值,将消息路由给一个或多个绑定队列。


    扇型交换机和主题交换机异同:


    对于扇型交换机路由键是没有意义的,只要有消息,它都发送到它绑定的所有队列上

    对于主题交换机,路由规则由路由键决定,只有满足路由键的规则,消息才可以路由到对应的队列上

    Headers exchange(头交换机)


    类似主题交换机,但是头交换机使用多个消息属性来代替路由键建立路由规则。通过判断消息头的值能否与指定的绑定相匹配来确立路由规则。 

    此交换机有个重要参数:”x-match”


    当”x-match”为“any”时,消息头的任意一个值被匹配就可以满足条件

    当”x-match”设置为“all”的时候,就需要消息头的所有值都匹配成功


    查看全部
  • 可靠性投递方案

    查看全部
  • amqp协议模型

    查看全部
    0 采集 收起 来源:RabbitMQ简介

    2018-12-01

  • step1. 数据入库同时消息(msg)入库

    step2.发送消息

    step3.请求确认 confirm

    step4.读取数据库msg消息修改状态status:1

    step5.但发送消息网络中断,通过定时任务查询状态为status:0的消息

    step6.抓取消息,重新投递

    step7.最大尝试次数 3次 不能成功则状态修改为2。

    查看全部
  • 100%消息投递成功设计
    注意:只考虑发送方100%投递,当多次投递成功需要接收方做“幂等”处理。

    查看全部
  • 消息流转数据过程

    查看全部
  • AMQP 高级消息队列协议

    查看全部
    0 采集 收起 来源:RabbitMQ简介

    2018-11-29

  • 采用模式:镜像队列模式,数据不丢失

    查看全部
    0 采集 收起 来源:RabbitMQ简介

    2018-11-29

举报

0/150
提交
取消
课程须知
有一定的Linux基础,springboot基础,熟悉JAVA主流框架ssm(spring+mybatis整合)
老师告诉你能学到什么?
1.RabbitMQ安装与使用 2.RabbitMQ核心概念 3.RabbitMQ整合SpringBoot2.x生产端发送消息 4.RabbitMQ整合SpringBoot2.x消费端处理消息 5.RabbitMQ-消息的可靠性投递-实现方案 6.RabbitM整合SpringBoot2.x-消息可靠性投递-实现方案落地代码详解

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!