安装:

这个网上很多,可以自己去看。

MQ概述

MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统 之间进行通信。(主要来说就是在服务处理的时候先不处理,因为服务器一下子处理不了那么多,先放在队列里面,后面再处理

MQ的优势:

1,MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。(系统的耦合性越高,容错性就越低,可维护性就越低。

2,任务异步处理(将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响 应时间。

3,削峰填谷

列如:

MQ的劣势

1,系统引入的外部依赖越多,系统稳定性越差。一旦 MQ 宕机,就会对业务造成影响

2,MQ 的加入大大增加了系统的复杂度,以前系统间是同步的远程调用,现在是通过 MQ 进行异步调用。

3,A 系统处理完业务,通过 MQ 给B、C、D三个系统发消息,如果 B 系统、C 系统处理成功,D 系统处理 失败。

RabbitMQ 基础架构如下图:

简单模式

就是一个生产消息,一个消费消息,加上之间一个队列存储消息,最简单的一个了

Work queues工作队列模式

和简单模式差不多,多了一个消费的,怕一个处理不过来就用这一个。(是一个调135,一个246,en.....应该看得懂)

订阅模式概述

和之前的比,又多了一个exchange(交换机),主要是用来干(接收生产者发送的消息。另一方面,知道如何处理消 息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃

exchange交换机主要有这几个(

Fanout:广播,将消息交给所有绑定到交换机的队列

Direct:定向,把消息交给符合指定routing key 的队列

Topic:通配符,把消息交给符合routing pattern(路由模式) 的队列

注意:因此如果没有任何队列与Exchange绑 定,或者没有符合路由规则的队列,那么消息会丢失!

1、每个消费者监听自己的队列。 2、生产者将消息发给broker,由交换机将消息转发 到绑定此交换机的每个队列,每个绑定交换机的队列都将接收 到消息

Routing路由模式

解释:

P:生产者,向Exchange发送消息,发送消息时,会指定一个routing key。

X:Exchange(交换机),接收生产者的消息,然后把消息递交给 与routing key完全匹配的队列

C1:消费者,其所在队列指定了需要routing key 为 error 的消息

C2:消费者,其所在队列指定了需要routing key 为 info、error、warning 的消息

(就是多了个key,不能乱路由了,各有各的妈)

Topics通配符模式

# :匹配一个或多个词

* :匹配不多不少恰好1个词

就是路由的时候可以用这两个通配符,方便简单些。

RabbitMQ队列相关推荐

  1. Day10-Python3基础-协程、异步IO、redis缓存、rabbitMQ队列

    内容目录: Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko S ...

  2. python rabitmq_python RabbitMQ队列使用

    原博文 2019-01-17 21:17 − python RabbitMQ队列使用 关于python的queue介绍 关于python的队列,内置的有两种,一种是线程queue,另一种是进程queu ...

  3. [RabbitMQ]队列持久化

    RabbitMQ持久化 概念 如何保障当 RabbitMQ 服务停掉以后消息生产者发送过来的消息不丢失.默认情况下 RabbitMQ 退出或由于某种原因崩溃时,它忽视队列和消息,除非告知它不要这样做. ...

  4. RabbitMq队列 queue

    目录 RabbitMq队列 消息确认机制 负载均衡 生产者代码 消费者1 消费者2 RabbitMq队列 在上篇文章中讲了mq的队列,这篇用代码实现.在例子中存在一个生产者,和两个消费者.生产者将生产 ...

  5. rabbitmq队列中消息过期配置

    最近公司某个行情推送的rabbitmq服务器由于客户端异常导致rabbitmq队列中消息快速堆积,还曾导致过内存积压导致rabbitmq客户端被block的情况.考虑到行情信息从业务上来说可以丢失部分 ...

  6. Python开发【十一章】:RabbitMQ队列

    RabbitMQ队列 rabbitMQ是消息队列:想想之前的我们学过队列queue:threading queue(线程queue,多个线程之间进行数据交互).进程queue(父进程与子进程进行交互或 ...

  7. golang gin 监听rabbitmq队列无限消费

    golang gin 监听rabbitmq队列无限消费 连接rabbitmq package databaseimport ("github.com/streadway/amqp" ...

  8. RabbitMQ队列阻塞该如何处理

    概述 事故经过 由于大量商户反应收不到推送,第一反应是不是推送系统挂了,导致没有进行推送.于是让运维检查推送系统个节点的情况,发现都正常.于是打开RabbitMQ的管控台看了一下,人都蒙了.已经有几万 ...

  9. 七RabbitMQ队列、Redis

    MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息传递指的是程序之间 ...

  10. RabbitMQ队列监控

    Idle:通过自动发现队列,获取各个队列中的ready,unackd等值 sudo !!! 1 #!/bin/sh 2 discovery(){ 3 Queue=(`rabbitmqctl list_ ...

最新文章

  1. Nginx 配置实战:负载均衡的实现
  2. 华为eNSP和SecureCRT连接乱码问题
  3. nginx进程管理之master进程
  4. MATLAB中nargin 的用法
  5. jdk7 for Mac
  6. 升级鸿蒙系统效果,鸿蒙系统初体验 全方位体验升级[多图]
  7. 【转载】ABAP 字符串 ‘‘ || `` 区别
  8. 使用Capistrano向EC2部署Django代码--关于SSH相关的配置
  9. 设计模式之 六大原则
  10. C#类和接口、虚方法和抽象方法及值类型和引用类型的区别
  11. java 数据库 properties_原生Java读取properties连接数据库
  12. Java工作笔记-IntelliJ IDEA中高效文件切换跳转
  13. CSS缩小窗口时,背景图出现右侧空白
  14. 网络综合实验结课总结
  15. 黑马JavaEE云计算大数据全套视频 JavaEE云计算开发全套视频教程 超全精华班 82G
  16. qtcpsocket断开_关于使用QTcpSocket的一些总结
  17. 2寸的照片长宽各是多少_2寸照片的高和宽是多少像素?
  18. 写给前端程序员的英文学习指南
  19. 对泊松分布的一点理解
  20. 马士兵老师Struts2学习笔记

热门文章

  1. 基于python文本挖掘的电商产品评论数据情感分析报告
  2. windows 怎样查看计算机本地安装的证书
  3. 如何将写好的网页放在服务器上,怎么把网页放在云服务器上
  4. 彬彬的 GDKOI2023 游记
  5. 从零单排冲kubebuilder(二)
  6. Have A Jump
  7. Python基础之进程(Process)
  8. Unity UI或3d模型的动画控制(Animation类)
  9. 安卓手机、平板安装完整桌面Ubuntu系统、wps办公,无需root
  10. 东软JavaWeb实训记-DAY8-小组项目开发实践(文件上传下载等操作)