zoukankan      html  css  js  c++  java
  • 消息队列的一些概念

    用过哪些消息队列组件、消息队列有哪些基本概念、消息队列的作用、你使用消息队列使用场景、什么是AMQP、怎么保证消息的可靠性

    用过哪些消息队列组件:

    用过rabbitmq

    基本概念:

    producer:消息生产者

    consumer:消息消费者

    channel:信道,基于connection创建

    exchange(交换机):交换机接收消息,根据路由键转发消息到绑定的队列

    Broker:消息队列服务器实体

    message消息:每个消息都有一个路由键属性

    Connection:程序和broker的链接

    binding绑定:一个绑定就是基于路由键将交换机和队列链接起来的路由规则,所以交换机就是一个由绑定构成的路由表。

    queue队列:消息的容器,是rabbitmq内部,用于存储消息;消费者通过订阅队列来获取消息,生产者通过交换机最终把消息投递到队列。消费者可以从 Queue 中获取消息并消费;多个消费者可以订阅同一个 Queue,这时 Queue 中的消息会被平均分摊给多个消费者进行处理,而不是每个消费者都收到所有的消息并处理。

    routing key 路由键:消息发送给交换机时,消息拥有一个路由键,交换机根据路由键发送到匹配的队列

    binding key 绑定键:

    交换机的三种常用类型:

    Direct:完全匹配

    Topic:模式匹配。根据通配符规则。*匹配一个单词,#匹配0个或者多个单词,路径之间用.隔开

    Fanout:忽略匹配 把所有发送到该 Exchange 的消息路由到所有与它绑定 的Queue 中。

    消息队列的作用

    业务之间的解耦和代码的解耦

    异步处理:消息发出去,有订阅方处理,不影响当前流程的速度和逻辑

    限流削峰:例如秒杀等活动,把集中的流量摊平

    使用的场景:

    例如用户下单,发个消息出去,消息的参数有订单id,使用的优惠券id

    等信息。如果使用了优惠券就可以通过消息修改用户的优惠券状态,改为已使用,以及其他操作。

    再例如:。。。

    什么是AMQP:

    AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是一个进程间传递异步消息的网络协议。

    工作过程

    发布者(Publisher)发布消息(Message),经由交换机(Exchange)。

    交换机根据路由规则将收到的消息分发给与该交换机绑定的队列(Queue)。

    最后 AMQP 代理会将消息投递给订阅了此队列的消费者,或者消费者按照需求自行获取。

    交换机类型:Direct、Fanout、Topic、Header

  • 相关阅读:
    'Undefined symbols for architecture i386,clang: error: linker command failed with exit code 1
    The codesign tool requires there only be one 解决办法
    XCode iOS project only shows “My Mac 64bit” but not simulator or device
    Provisioning profile XXXX can't be found 的解决办法
    UIView 中的控件事件穿透 Passthrough 的实现
    Xcode4.5出现时的OC新语法
    xcode 快捷键(持续更新)
    打越狱包
    php缓存与加速分析与汇总
    浏览器的判断
  • 原文地址:https://www.cnblogs.com/dayang12525/p/13598018.html
Copyright © 2011-2022 走看看