1. 概述

  1. 与 rabbitmq 做交互

    1. amqp 最著名的实现
  2. 与 jms 最明显的区别
    1. 消息

      1. 不是去找 queue
      2. 而是去找 exchange

2. rabbitmq

  1. 基本组件

    1. sender

      1. 发送者
    2. receiver
      1. 接收者

        1. 从 queue 里接受消息
    3. broker
      1. 概述

        1. 队列服务器, 中间件
      2. 组件
        1. exchange

          1. 作用

            1. 接受 消息
            2. 转发消息
        2. binding
          1. 貌似是 queue 的一个属性
        3. queue
          1. 存放消息, 等待消费
  2. 与 jms 的区别
    1. jms

      1. 分发

        1. 直接将消息分发到 queue
      2. 消息
        1. 携带着 目的地址
    2. rabbitmq
      1. 分发

        1. 有着相对复杂的规则
        2. 规则根据 exchange 和 消息携带的信息, 进行转发
      2. 消息
        1. 不携带 目的 queue
        2. 携带的是 routing key
  3. 消息的活动路径
  4. exchange 简述
    1. default

      1. 默认创建
      2. 知道 broker 里所有的 queue
      3. 转发
        1. 找到 消息里 routing key
        2. 找到 queue 名称
        3. 如果相同, 就发过去
    2. direct
      1. 类似 default

        1. 这次比对的, 是 消息的 routing key 和 queue 的 bingding key
    3. topic
      1. 类似 direct

        1. 不过区别是, 转发的次数, 可能会有很多

          1. 支持 binding key 正则匹配
    4. fanout
      1. @所有人
    5. header
      1. 类似 topic

        1. 不过这次的判定依据, 是 消息的 header 与 binding key
    6. dead letter
      1. 类似 java 的 catch

        1. 转发那些有问题的消息
  5. 我的认识
    1. message

      1. 属性

        1. header
        2. 内容
        3. 发送时指定
          1. routing key
          2. exchange
      2. jms
        1. jms 的消息, 貌似没有这么多属性
        2. 地址 都是在发送时候由 template 指定的
          1. 不过连接字符串倒是已经配好了的
    2. queue
      1. 属性

        1. name
        2. binding key
        3. queue
    3. 消息的路径
      1. 使用特定的 假设有个 template 与 broker 通信

        1. 感觉通常 一个 template 对应 一个 broker
        2. 一个 broker 对应一个 exchange
      2. 到了 exchange 后, 与 规则匹配, 然后转发

rabbitmq - 简单认识的更多相关文章

  1. rabbitmq简单收发服务搭建

    消息发送.接收简单代码示例 mq.xml //rabbitmq config spring.rabbitmq.host=ip:host spring.rabbitmq.username= spring ...

  2. RabbitMQ简单应用の简单队列

    (1)首先创建一个maven项目: pom.xml,重点是配置RabbitMQ <dependencies> <dependency> <groupId>junit ...

  3. AMQP消息队列之RabbitMQ简单示例

    前面一篇文章讲了如何快速搭建一个ActiveMQ的示例程序,ActiveMQ是JMS的实现,那这篇文章就再看下另外一种消息队列AMQP的代表实现RabbitMQ的简单示例吧.在具体讲解之前,先通过一个 ...

  4. rabbitmq简单实例

    JMS组件:activemq(慢)AMQP组件(advance message queue protocol):rabbitmq和kafka 一..消息队列解决了什么问题?异步处理应用解耦流量削锋日志 ...

  5. RabbitMQ 简单的消息发送与接收

    RabbitMQ是建立在AMQP(Advanced Message Queuing Protocol,高级消息队列协议)基础上的,而AMQP是建立在TCP协议之上的. 因此,RabbitMQ是需要建立 ...

  6. RabbitMQ简单使用

    环境搭建: RabitMQ是用Elang编写的,虽然Elang本身是跨平台的,但也同时意味着搭建Rabit环境需要首先配置Elang环境.配置RabitMQ的网上教程还比较多的: windows 下 ...

  7. RabbitMQ基础组件和SpringBoot整合RabbitMQ简单示例

    交换器(Exchange) 交换器就像路由器,我们先是把消息发到交换器,然后交换器再根据绑定键(binding key)和生产者发送消息时的路由键routingKey, 按照交换类型Exchange ...

  8. PHP 下基于 php-amqp 扩展的 RabbitMQ 简单用例 (四) -- Push API 和 Pull API

    RabbitMQ 中针对消息的分发提供了 Push API (订阅模式) 和 Pull API (主动获取) 两种模式. 在 PHP 中, 这两种模式分别通过 AMQPQueue 类中的 consum ...

  9. rabbitmq 简单示例(Hello World)

    一:消息中间件: AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计 RabbitMQ是实现AMQP( ...

  10. RabbitMQ学习笔记(2)----RabbitMQ简单队列(Hello World)的使用

    1. 简单队列结构图 2. 引入依赖 pom.xml文件 <dependency> <groupId>com.rabbitmq</groupId> <arti ...

随机推荐

  1. caffe+win10+git使用sh文件

    在windows下是否可以执行sh文件呢,搜了一下,可以安装了git就可以执行,当然这不是唯一答案. 然后联想到caffe下有一些.sh文件可以尝试,就用create_mnist.sh尝试把. cre ...

  2. 转载:openmax基本概念

    https://yellowmax.blog.csdn.net/article/details/78080168 https://yellowmax.blog.csdn.net/article/det ...

  3. 备份Sql Server中的某些表

    第一步:右键需要备份表的数据库 第二步:选择=>选择特定数据库对象,在下方选择你需要备份的数据表. 第三步,点击高级,在要编写脚本的数据的类型中选择架构和数据(看个人需要),根据需要可更换生成的 ...

  4. Eclipse的Errors in required projec(s)问题

    在Eclipse中运行代码时出现Errors exist in required project(s)弹窗提示,但是当前类并无错误,点击Proceed当前类仍然可以运行 错误展示: Errors ex ...

  5. 2020牛客寒假算法基础集训营5 G.街机争霸 (bfs)

    https://ac.nowcoder.com/acm/problem/201961 预处理出僵尸走的路径,僵尸走的周期长度应该为2k-2,在普通的bfs基础上加上一维表示时间,从当前位置x,y和和时 ...

  6. 详解C/C++中的的:#pragma pack(push) 、#pragma pack(pop) 和#pragma pack()

    前言 我们知道结构体内存对齐字节可以通过#pragma pack(n) 的方式来指定. 但是,有没有想过一个问题,某些时候我想4字节对齐,有些时候我又想1字节或者8字节对齐,那么怎么解决这个问题呢? ...

  7. sort函数的用法(C++排序库函数的调用)

    对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了. (一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c+ ...

  8. django 版本 对应pyhton版本

    对应关系

  9. 找不到getter/setter——没有安装lombok插件

    项目pull后的问题: import lombok.Getter; import lombok.Setter; @Setter @Getter public class ConcreteEntity ...

  10. openresty入门文章(笔者自用)

    推荐好的openresty入门介绍文章:https://www.cnblogs.com/digdeep/p/4859575.html