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

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

难度中级
时长 2小时31分
学习人数
综合评分8.80
50人评价 查看评价
9.3 内容实用
8.4 简洁易懂
8.7 逻辑清晰
  • 源码路径:https://github.com/suxiongwei/springboot-rabbitmq

    安装顺序:若提前安装3,会提示缺少秘钥

    1、 rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm

    2、rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm

    3、rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm

    查看全部
  • RabbitMQ简介及AMPQ协议

    RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ 是使用Erlang 语言来编写的,并且RabbitMQ是基于AMQP协议的。

    RabbitMQ底层采用Erlang 语言进行编写

    开源、性能优秀,稳定性保障

    与SpringAMQP完美的整合、API丰富

    集群模式丰富,表达式配置,HA模式,镜像队列模型

    保证数据不丢失的前提做到高可靠性、可用性

    AMQP全程:Advanced Message Queuing Protocol

    AMQP翻译:高级消息队列协议


    AMQP协议模型

    http://img1.sycdn.imooc.com//5ef69f6f0001d29109910594.jpg

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

    2020-06-27

    1. 准备:

      yum install

      build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz


    2. 下载

      wget

      www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm

      http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm

      www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm

    3. 配置:

      vim /etc/hosts 以及 /etc/hostname

    4. 配置文件:

      vim  /user/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app

      启动:rabbitmq-server start &

      停止: rabbitmqctl app_stop

    5. 管理插件:

      rabbitmq-plugins enable rabbitmq_management

    6. 访问地址:http://127.0.0.1:15672/



    查看全部
  • <dependency>

    <groupId>org.apache.commons</groupId>

    <artifactId>commons-lang3</artifactId>

    </dependency>

    <dependency>

    <groupId>commons-io</groupId>

    <artifactId>commons-io</artifactId>

    <version>2.4</version>

    </dependency>

    <dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>fastjson</artifactId>

    <version>1.1.26</version>

    </dependency>

    <dependency>

    <groupId>javax.servlet</groupId>

    <artifactId>javax.servlet-api</artifactId>

    <scope>provided</scope>

    </dependency>

    <dependency>

    <groupId>log4j</groupId>

    <artifactId>log4j</artifactId>

    <version>1.2.17</version>

    </dependency>


    查看全部
  • 保障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%投递成功,不保证是否出现多投的情况,需要消费者做幂等。

    查看全部
  • 普遍采用的是镜像队列模式

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

    2020-12-26

  • 消息队列
    查看全部
  • 第一要去看一下交换机的四种类型。其次,这里面order.#就是所有order开头的都会路由到order-queue

    order.*只表示一段模糊匹配

    查看全部
  • ##springboot整合rabbitmq消费端配置

    spring.rabbitmq.listener.simple.concurrency=5

    spring.rabbitmq.listener.simple.max-concurrency=10

    spring.rabbitmq.listener.simple.ackonwlege-mode=AUTO

    spring.rabbitmq.listener.simple.prefetch=1

    查看全部
  • application.properties中的配置

    spring.rabbitmq.addresss=127.0.0.1:5672    

    spring.rabbitmq.username=guest

    spring.rabbitmq.password=guest

    spring.rabbitmq.connection-timeout=15000


    server.servlet.context-path=/

    server.port=8001

    spring.http.encoding.charset=UTF-8

    spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

    spring.jackson.time-zone=GMT+8

    spring.jackson.default-property-inclusion=NON_NULL

    查看全部
  • 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”的时候,就需要消息头的所有值都匹配成功


    查看全部
  • step1. 数据入库同时消息(msg)入库

    step2.发送消息

    step3.请求确认 confirm

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

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

    step6.抓取消息,重新投递

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

    查看全部
  • Routing路由key匹配规则  *和# 的区别  *号匹配一个点后 的,例如Oder.* 

    ,但是oder.12.a z第二个点就不匹配了,#号可以匹配

    查看全部
  • publisher 生产者  Consumer消费者   Exchange路由   Message Queue消息队列

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

    2018-11-25

  • AMQP:高级消息队列协议

    生产者将消息发送到交换机,交换机通过路由将消息发给消息队列,消费者从消息队列中拿去数据

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

    2018-10-20

首页上一页1234567下一页尾页

举报

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下载
官方微信
友情提示:

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