zoukankan      html  css  js  c++  java
  • RabbitMQ概念

    RabbitMQ 即一个消息队列,_主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。_RabbitMQ使用的是AMQP协议,它是一种二进制协议。默认启动端口 5672。

    在 RabbitMQ 中,如下图结构:

    rabbitmq

    • 左侧 P 代表 生产者,也就是往 RabbitMQ 发消息的程序。
    • 中间即是 RabbitMQ,_其中包括了 交换机 和 队列。_
    • 右侧 C 代表 消费者,也就是往 RabbitMQ 拿消息的程序。

    那么,其中比较重要的概念有 4 个,分别为:虚拟主机,交换机,队列,和绑定。

    • 虚拟主机:一个虚拟主机持有一组交换机、队列和绑定。为什么需要多个虚拟主机呢?很简单,RabbitMQ当中,_用户只能在虚拟主机的粒度进行权限控制。_ 因此,如果需要禁止A组访问B组的交换机/队列/绑定,必须为A和B分别创建一个虚拟主机。每一个RabbitMQ服务器都有一个默认的虚拟主机“/”。
    • 交换机:Exchange 用于转发消息,但是它不会做存储,如果没有 Queue bind 到 Exchange 的话,它会直接丢弃掉 Producer 发送过来的消息。
      • 这里有一个比较重要的概念:**路由键 ** 。消息到交换机的时候,交互机会转发到对应的队列中,那么究竟转发到哪个队列,就要根据该路由键。
    • 绑定:也就是交换机需要和队列相绑定,这其中如上图所示,是多对多的关系。

    通常我们谈到队列服务, 会有三个概念: 发消息者、队列、收消息者,RabbitMQ 在这个基本概念之上, 多做了一层抽象, 在发消息者和 队列之间, 加入了交换器 (Exchange). 这样发消息者和队列就没有直接联系, 转而变成发消息者把消息给交换器, 交换器根据调度策略再把消息给队列。

  • 相关阅读:
    获取元素位置信息和所占空间大小(via:js&jquery)
    原生js获取元素的样式信息
    真的了解js生成随机数吗
    js中有关滑动问题的一些理解
    禁止遮罩层以下屏幕滑动----正解(更新版)
    js中的null和undefined
    通过ajax获得json数据后格式的转换
    悬浮导航栏的实现以及导航跳转
    css selector
    视频播放器
  • 原文地址:https://www.cnblogs.com/doit8791/p/9920498.html
Copyright © 2011-2022 走看看