项目中的MQ:


  1. #rabbitmq
  2. spring.rabbitmq.host=127.0.0.1 主机
  3. spring.rabbitmq.port=5672 端口
  4. spring.rabbitmq.username=guest 用户名
  5. spring.rabbitmq.password=guest 密码
  6. spring.rabbitmq.virtual-host=/
  7. #\u6D88\u8D39\u8005\u6570\u91CF
  8. spring.rabbitmq.listener.simple.concurrency= 10 消费者的数量 出队
  9. spring.rabbitmq.listener.simple.max-concurrency= 10
  10. #\u6D88\u8D39\u8005\u6BCF\u6B21\u4ECE\u961F\u5217\u83B7\u53D6\u7684\u6D88\u606F\u6570\u91CF
  11. spring.rabbitmq.listener.simple.prefetch= 1 每次从队列中取1个
  12. #\u6D88\u8D39\u8005\u81EA\u52A8\u542F\u52A8
  13. spring.rabbitmq.listener.simple.auto-startup=true
  14. #\u6D88\u8D39\u5931\u8D25\uFF0C\u81EA\u52A8\u91CD\u65B0\u5165\u961F
  15. spring.rabbitmq.listener.simple.default-requeue-rejected= true 消费失败后是否重新入队
  16. #\u542F\u7528\u53D1\u9001\u91CD\u8BD5
  17. spring.rabbitmq.template.retry.enabled=true
  18. spring.rabbitmq.template.retry.initial-interval=1000
  19. spring.rabbitmq.template.retry.max-attempts=3
  20. spring.rabbitmq.template.retry.max-interval=10000
  21. spring.rabbitmq.template.retry.multiplier=1.0

Rabbitmq 的队列容量可以认为是无限的,根据内存有关。 可以设置队列最大长度,当达到长度的时候,最先入队的消息将被丢弃。

流量削峰一般在秒杀活动中应用广泛 

场景:秒杀活动,一般会因为流量过大,导致应用挂掉,为了解决这个问题,一般在应用前端加入消息队列。 

作用: 

1.可以控制活动人数,超过此一定阀值的订单直接丢弃(我为什么秒杀一次都没有成功过呢^^) ,先显示一个排队中,后端在处理,可能成功可能失败。

2.可以缓解短时间的高流量压垮应用(应用程序按自己的最大处理能力获取订单)

为什么使用Rabbit mq?

1.Rabbit mq 是一个高级消息队列,在分布式的场景下,拥有高性能。,对负载均衡也有很好的支持。

2.拥有持久化的机制,进程消息,队列中的信息也可以保存下来。

3.实现消费者和生产者之间的解耦

4.对于高并发场景下,利用消息队列可以使得同步访问变为串行访问达到一定量的限流,利于数据库的操作。

5.可以使用消息队列达到异步下单的效果,排队中,后台进行逻辑下单。

AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在

1.1、rabbitMQ的优点(适用范围)

1. 基于erlang语言开发具有高可用高并发的优点,适合集群服务器。

2. 健壮、稳定、易用、跨平台、支持多种语言、文档齐全。

3. 有消息确认机制和持久化机制,可靠性高。

4. 开源

其他MQ的优势:

1. Apache ActiveMQ曝光率最高,但是可能会丢消息。

2. ZeroMQ延迟很低、支持灵活拓扑,但是不支持消息持久化和崩溃恢复。

其他消息队列,Kafka 定位是日志消息队列。吞吐量最大。

相比阿里的Rocket MQ ,Rabbit MQ 是可靠性更强,对数据一致性、稳定性和可靠性要求很高的场景。

劣势是Rabbit mQ 的性能,吞吐量不高。

Rabbit MQ 面试题相关的更多相关文章

  1. Rabbit MQ config文件解析

    Rabbit MQ config文件解析 tcp_listeners:用于监听AMQP连接的端口或主机名/对(不带TLS),默认端口:5672 2.numtcpacceptors :将接受TCP侦听器 ...

  2. 分布式消息中间件Rabbit Mq的了解与使用

    MQ(消息队列)作为现代比较流行的技术,在互联网应用平台中作为中间件,主要解决了应用解耦.异步通信.流量削锋.服务总线等问题,为实现高并发.高可用.高伸缩的企业应用提供了条件. 目前市面比较流行的消息 ...

  3. Spring Boot:使用Rabbit MQ消息队列

    综合概述 消息队列 消息队列就是一个消息的链表,可以把消息看作一个记录,具有特定的格式以及特定的优先级.对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息,对消息队列有读权限的进程则可以 ...

  4. Spring boot集成Rabbit MQ使用初体验

    Spring boot集成Rabbit MQ使用初体验 1.rabbit mq基本特性 首先介绍一下rabbitMQ的几个特性 Asynchronous Messaging Supports mult ...

  5. Rabbit MQ 学习参考

    网上的教程虽然多,但是提供demo的比较少,或者没有详细的说明,因此,本人就照着网上的教程做了几个demo,并把代码托管在码云,供有需要的参考. 项目地址:https://gitee.com/dhcl ...

  6. 使用Rabbit MQ消息队列

    使用Rabbit MQ消息队列 综合概述 消息队列 消息队列就是一个消息的链表,可以把消息看作一个记录,具有特定的格式以及特定的优先级.对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息 ...

  7. Rabbit MQ 基础入门

    Rabbit MQ 学习(一)基础入门 简介 RabbitMQ 简介 为什么选择 RabbitMQ RabbitMQ 的模型架构是什么? AMQP 协议是什么? AMQP 常用命令 概念 生产者和消费 ...

  8. rabbit mq 基础流程(转)

    从AMQP协议可以看出,MessageQueue.Exchange和Binding构成了AMQP协议的核心,下面我们就围绕这三个主要组件    从应用使用的角度全面的介绍如何利用Rabbit MQ构建 ...

  9. 在 Windows 上安装Rabbit MQ 指南

    rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器. Ra ...

随机推荐

  1. C#通过gridview导出excel

    [CustomAuthorize]        public FileResult ExportQuestionCenterExcel(SearchBaseQuestion search)      ...

  2. Java 抽象类和Final关键字

    抽象类 用abstract关键字来修饰一个类时,这个类叫抽象类: 用abstract关键字来修饰一个方法时,该方法叫做抽象方法. 含有抽象方法的类必须被定义而为抽象类,抽象类必须被继承,抽象方法必须被 ...

  3. j2ee—框架(2):Servlet+JSP实现基本的登录功能(v2.0)

    该部分将逻辑判断在UserBean中进行处理,而且不采用配置的方式去实现,为了区分开两种实现方法的不同,在这里将之前设置的内容只是备注掉,并不会删除,也方便之后将两种方式进行对比. 第一部分 Logi ...

  4. 基于gulp的前端自动化开发构建新

    关于gulp的使用,已经在之前写过一篇文章,但是遗留了一个问题.问题是实现文件的增量式更新,就是给html引入的js和css文件打上标记.每次更新标记更新. 上篇文章想通过开发同时实现标记的实时更新, ...

  5. windows批处理学习(字符换操作)---04

    转自:https://www.cnblogs.com/DswCnblog/p/5432326.html 1.截取字符串 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特 ...

  6. MySQL必备命令

    来源:http://www.cnblogs.com/liushuijinger/p/3381775.html 今天跟大家分享一下MySQL从连接到具体操作的一系列常用命令.可能有的人觉得现在有很多可视 ...

  7. 第26天:js-$id函数、焦点事件

    一.函数return语句定义函数的返回值,在函数内部用return来设置返回值,一个函数只能有一个返回值.同时,终止代码的执行.所有自定义函数默认没有返回值return后面不要换行 var a=10, ...

  8. 【python】如何查看已经安装的python软件包和版本

    pip 是一个安装和管理 Python 包的工具 , 是 easy_install 的一个替换品. pip freeze可以查看已经安装的python软件包和版本 pip list 也可以

  9. codeforces 985 E. Pencils and Boxes (dp 树状数组)

    E. Pencils and Boxes time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  10. zoj3209-Treasure Map

    给出一个左下角为\((0,0)\),右上角为\((n,m)\)的矩形,再给出\(k\)个在大矩形内的小矩形(可以重合),问是否能用这些小矩形完全覆盖这个大矩形,并且没有重合,如果可以至少需要多少个. ...