RabbitMQ基本概念(一)-RabbitMQ的优劣势及产生背景
本篇并没有直接讲到技术,例如没有先写个Helloword。我想在选择了解或者学习一门技术之前先要明白为什么要现在这个技术而不是其他的,以免到最后发现自己学错了。同时如果已经确定就是他,最好先要了解下技术产生的背景等因素,以便对技术有更深刻全面的了解(那句话怎么讲的“你不了解过去的我,又怎么理解现在的我”)。
为什么使用RabbitMQ
为什么我开始选择学习RabbitMQ:
- 安装部署简单,上手门槛低,功能丰富,符合AMQP标准;
- 企业级消息队列,经过大量实践考验的高可靠;
- 集群易扩展,可以轻松的增减集群节点;
- 有强大的WEB管理页面。
企业为什么将RabbitMQ作为消息队列系统:
在我学习RabbitMQ的初期我在网上查到一些这方面的资料,我认为比较好的是下面这封http://www.doc88.com/p-5826232080382.html 一方面是他对于RabbitMQ的评价本身,更重要的是对于技术选型评价的两个维度:十万米高空看技术和显微镜看技术。
十万米高空看RabbitMQ:
- 有商业化的运营,不会轻易死掉;
- 遵循AMQP协议,不会被绑架;
- 强大的社区支持,为技术进步提供动力;
- 大量成功的应用案例,例如阿里、网易等互联网巨头都有使用。
显微镜看RabbitMQ:
- Erlang开发,AMQP的最佳搭档,在支持持久化的消息队列中性能算很优秀的;
- 支持消息持久化、支持消息确认机制、灵活的任务分发机制等,支持功能非常丰富;
- 可靠性高;
- 集群扩展很容易,并且可以通过增加节点实现成倍的性能提升;
- WEB管理和监控,有些技术癌更喜欢命令行界面,但WEB管理为后期运维提供很大的便利。
RabbitMQ劣势:
在kafka和zero面前性能被虐成渣,(持久化消息和ACK确认的情况下生产和消费消息单机大约在1-2万左右)
结论:如果你希望使用一个可靠性高、功能强大、易于管理的消息队列系统那么就选择RabbitMQ吧,如果你想用一个性能高,但偶尔丢点数据不是很在乎可以使用kafka或者zeroMQ。
RabbitMQ产生的背景
1、消息队列系统最在可以追溯到上个世纪(是不是感觉很久远,其实是1983年,那时候我还没用出生)。1983年最早的消息队列软件Teknekron诞生,当时紧用于一些金融交易等系统。
2、上世纪九十年代,诞生了多家消息队列系统,例如IBM MQ、微软的MSMQ、TIBCO MQ等消息队列在企业中的应用也愈加广泛。显然这些商用的消息队列系统如果企业要使用需要付出高昂的成本,并且各个消息队列之间使用不同的API不同的协议。
3、2004年,AMQP(Advanced Message Queuing Protocol,高级消息队列协议)开始开发。通过这一标准可以和任意AMQP供应商提供的MQ服务进行交互。
4、2006年,光阴荏苒时光如梭,一转眼就说到了重点。我们的主角使用Erlang语言实现的AMQP开源版本,RabbitMQ诞生了,同年AMQP协议首次发布。
为什么叫RabbitMQ?
很多人估计和我一样也有这个疑问,我在《RabbitMQ实战》这本书中找到了答案:兔子行动非常迅速而且繁殖起来也非常疯狂,所以就把Rabbit用作这个分布式软件的命名(就是真么简单)。
转载于:https://www.cnblogs.com/JavaHxm/p/10837173.html
RabbitMQ基本概念(一)-RabbitMQ的优劣势及产生背景相关推荐
- 关于消息队列ActiveMQ、RocketMQ、RabbitMQ、Kafka原理机制以及优劣势的分析
复习要点 本文大概围绕如下几点进行阐述: 为什么使用消息队列? 使用消息队列有什么缺点? 消息队列如何选型? 如何保证消息队列是高可用的? 如何保证消息不被重复消费? 如何保证消费的可靠性传输? 如何 ...
- 消息中间件系列(八):Kafka、RocketMQ、RabbitMQ等的优劣势比较
在高并发业务场景下,典型的阿里双11秒杀等业务,消息队列中间件在流量削峰.解耦上有不可替代的作用. 之前介绍了MQ消息队列的12点核心原理总结,以及如何从0到1设计一个MQ消息队列,以及RPC远程调用 ...
- RabbitMQ 基本概念与高级特性
文章目录 1. 什么是消息队列 1.1 消息队列概述 1.2 使用消息队列的优势 1.3 使用消息队列的劣势 1.4 常见的消息队列产品对比 2. RabbitMQ 基本概念 2.1 RabbitMQ ...
- RabbitMQ基本概念
AMQP 和IM的区别: AMQP: 1.可以一对多广播,也可以一对一广播 2.生产者和消费者不知道对方是谁 IM: 1.只能一对一广播 2.生产者和消费者知道对方是谁 RabbitMQ:只是消息代理 ...
- RabbitMQ基础概念详解
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. RabbitMQ简介 AMQP,即Ad ...
- RabbitMQ 幂等性概念及业界主流解决方案
RabbitMQ 幂等性概念及业界主流解决方案 参考文章: (1)RabbitMQ 幂等性概念及业界主流解决方案 (2)https://www.cnblogs.com/shoshana-kong/p/ ...
- java B2B2C Springcloud电子商务平台源码-RabbitMQ基础概念...
RabbitMQ是一个由erlang开发的AMQP的开源实现. 需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码 一零三八七七四六二六 AMQP,即Adva ...
- RabbitMQ核心概念及基础API应用
RabbitMQ核心概念及基础API应用 1 主流中间件介绍 衡量消息中间件的指标:服务性能,数据存储,集群架构. 1.ActiveMQ:Apache,支持JMS规范最完整的. 2.RocketMQ ...
- rabbitmq基础1——消息中间件概念、Rabbitmq的发展起源和基本组件的作用流程
文章目录 一.消息中间件 1.1 概念 1.2 作用 1.2.1 消息队列持久化 1.2.2 消息队列分发策略 1.2.3 消息队列的高可用和高可靠 1.2.3.1 一主多从共享集群 1.2.3.2 ...
最新文章
- thymeleaf 的常见属性
- 设计模式--简单工厂VS工厂VS抽象工厂
- 论面向组合子程序设计方法 之 南无阿弥陀佛
- c语言变量radius数据类型,c语言数据类型
- PHP的foeach用法
- React开发(161):onref绑定
- java 1.7 新特性
- Test for open live write
- Ragel State Machine Compiler 的速度测试
- ipv6协议学习笔记(1)-ipv6基础
- springcloud配置中心config上线时配置文件被其他服务无法读取的两种情况
- linux下目录压缩,Linux下 目录 压缩 解压缩 打包
- 前端对接微信公众号网页开发流程,前期配置
- DSP芯片倍频太大导致low power mode,无法连接JTAG
- 【考研英语语法】语篇标记
- God.Game 漏洞复盘:跑路还是黑客攻击?
- FDC系列电容传感器及FDC2214使用要点
- 2022年吃瓜事件拆解,打造爆款,让你拥有顶级营销思维!
- 中软国际入职考试 质量管理考试 资料整理
- IP核的使用之FIFO(Vivado)
热门文章
- 如何在客户端发送ajax请求,ajax - 从服务器(nodejs)发送数据到客户端(ajax请求)
- python读取txt文件第一行-python读取文本文件数据
- python与php8-别再盲目学 Python 了!
- python小程序-python学习—几个简单小程序
- 学python需要英语基础吗-英语基础一般,如何才能学习C语言编程和Python
- python小游戏源码-导弹发射小游戏——Python源代码
- python培训好学吗-python难学吗?为什么上了python培训还是学不会?
- python百度云资源-Python开发视频百度云分享
- python一般用来开发什么-python主要用来做什么?Python开发简单吗?
- python新手入门-python新手入门方法