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. 【安卓开发】Webview简单使用

    什么是WebView? 答:Android内置webkit内核的高性能浏览器,而WebView则是在这个基础上进行封装后的一个 控件,WebView直译网页视图,我们可以简单的看作一个可以嵌套到界面上 ...

  2. 通过Process启动外部程序

    #region Process //声明一个程序类 System.Diagnostics.Process Proc; try { //声明一个程序信息类 System.Diagnostics.Proc ...

  3. C语言 删除排序链表中的重复元素

    给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2输出: 1->2示例 2: 输入: 1->1->2->3-> ...

  4. python面试的100题(15)

    41.super函数的具体用法和场景 为了调用父类(超类)的一个方法,可以使用 super() 函数,比如: class A: def spam(self): print('A.spam') clas ...

  5. JUC—Callable接口

    一.callable接口是什么? 面试题: 获得多线程的方法几种? 正确答案如下: 传统的 是继承thread类和实现runnable接口, java5以后又有实现 callable接口 和 java ...

  6. java高精度,大数

    package 高精度幂; import java.math.BigDecimal; import java.util.Scanner; public class Main{ public stati ...

  7. Python获取当前文件路径及父文件路径

    import os # 当前文件的路径 1.os.getcwd(): 2.os.path.realpath(__file__) # 当前文件的父路径 1.pwd=os.getcwd()   os.pa ...

  8. 2019牛客训练赛第七场 C Governing sand 权值线段树+贪心

    Governing sand 题意 森林里有m种树木,每种树木有一定高度,并且砍掉他要消耗一定的代价,问消耗最少多少代价可以使得森林中最高的树木大于所有树的一半 分析 复杂度分析:n 1e5种树木,并 ...

  9. protel99se无法添加库的解决方法

    protel99se是很老也很实用的的一门电类专业需要用到的软件,开发时面向XP,对于win7来说存在一定的不兼容性,导致无法添加新的库,本经验为此介绍解决方法.最全,末尾解决win7 32bit 6 ...

  10. 超大jtl解析jar包使用源于testfan

    解决超大jtl解析过慢时间过长问题: usage:  java  -jar  jmeter-graph.jar    jtl_path    interval_time (单位:s) 10G文件分析测 ...