RabbitMQ的原理和作用是什么
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,本篇内容介绍了"RabbitMQ的原理和作用是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、
千家信息网最后更新 2024年11月26日RabbitMQ的原理和作用是什么
本篇内容介绍了"RabbitMQ的原理和作用是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1、主流消息中间件介绍
1) ActiveMQ:由Apache出品,完全支持JMS规范的消息中间件,丰富的API,多种集群构建模式,在中小型企业中应用广泛,面对超大规模并发性能不是很好.2) Kafka:开源的分布式发布-订阅消息系统,基于pull模式来处理消息消费,追求高吞吐量,一开始目的用于日志收集和传输,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业务,强调高性能.3) RocketMQ:阿里开源,纯Java开发,具有高吞吐量、高可用性、适合大规模分布式系统,其思路起源于Kafka,它对消息的可靠性传输及事务性做了优化.4) RabbitMQ:使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现,AMQP协议更多应用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量要求还在其次.
2、RabbitMQ高性能的原因
1) Erlang语言最初基于交换机领域的架构模式,使得RabbitMQ在broker之间进行数据交互的性能是非常优秀的2) Erlang的优点:Erlang有着和原生Socket一样的延迟
3、什么是AMQP高级消息队列协议
它是一个现代特征的二进制协议,是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准.它就是一个规范.
4、AMQP核心概念
1) Server:又称Broker,接受客户端的连接,实现AMQP实体服务2) Connection:连接,应用程序与Broker的网络连接3) Channel:网络信道,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道,客户端可建立多个Channel,每个Channel代表一个会话任务. 拿到Connection后会创建channel4) Message:消息,由Properties和Body组成,Properties可以对消息体进行修饰,如优先级、延迟等高级特性,Body是消息内容5) Virtual host:虚拟地址,用于进行逻辑隔离,最上层的消息路由. 一个Virtual Host里面可以有若干个Exchange和Queue,同一个Virtual Host里面不能有相同名称的Exchange和Queue6) Exchange:交换机,接收消息,根据路由键转发消息到绑定的队列. 生产者将消息投到Exchange上,Exchange进行一个路由发送到绑定的Message Queue上7) binding:Exchange和Queue之间的虚拟连接,binding中可以包含routing key8) Routing key:一个路由规则,虚拟机可以用它来确定如何路由一个特定消息9) Queue:也称为Message Queue,消息队列,保存消息并将它们转发给消费者
5、RabbitMQ整体架构
生产者发送MQ消息时要带上两个关键参数:1) 指定发送到哪个Exchange2) 指定Routing Key,通过Exchange和Message Queue建立一个绑定关系,路由到指定Message Queue
6、Exchange交换机
Exchange:接收消息,并根据路由键转发消息到所绑定的队列交换机属性1) Name:交换机名称2) Type:交换机类型,有direct、topic、fanout、headers3) Durability:是否需要持久化4) Auto Delete:当最后一个绑定到Exchange上的队列删除后,自动删除该Exchange5) Arguments:扩展参数,用于扩展AMQP协议定制化使用交换机类型:1) Direct Exchange:所有发送到Direct Exchange的消息被转发到Route Key中指定的Queue 注意:Direct模式可以使用RabbitMQ自带的Exchange:default Exchange,所以不需要将Exchange进行任何绑定操作,消息传递时, Route Key必须完全匹配才会被队列接收,否则被丢弃2) Topic Exchange:所有发送到Topic Exchange的消息都被转发到所有关心Route Key指定Topic的Queue上. Exchange将Route Key和某个Topic进行模糊匹配,队列需要绑定一个Topic. 见下图Topic Exchange3) Fanout Exchange:不处理路由键,只需要简单的将队列绑定到交换机上,不用设置route key.发送到交换机的消息的消息都会被转发到与该交换机绑定的所有队列上面,它转发消息是最快的
7、绑定、队列、消息、虚拟主机详解
1) 绑定 Exchange和Exchange、Queue之间的连接关系2) 消息队列 Durability,是否持久化 Auto Delete,如选yes,代表当最后一个监听被移除之后,该Queue会自动被删除3) Message 服务器和应用程序之间传递的数据 本质上就是一段数据,由Properties和PayLoad(Body)组成 常用属性:delivery mode(送达模式,消息到Broker上是否持久化)、headers(自定义属性)4) Virtual Host虚拟主机 逻辑概念,虚拟地址,用于逻辑隔离,最上层的消息路由 一个Virtual Host里面可以有若干个Exchange和Queue 同一个Virtual Host里面不能有相同名称的Exchange或Queue
"RabbitMQ的原理和作用是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
消息
队列
交换机
路由
数据
应用
模式
之间
系统
服务
高级
内容
名称
吞吐量
属性
性能
更多
逻辑
吞吐
作用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
管理世界收录的数据库
客户机与服务器都是什么
长沙网络安全测试认证
电脑截图软件开发
像素科技互联网
网络安全体和网络交会模型
mat4软件开发商
华为手机计票数据库
武汉参考网络安全维护管理系统
服务器管理员工作舒服吗
缓存和数据库
it网络安全常识学习
网络技术弱势分析
网络技术认证考试资料
计算机服务器怎么共用打印机
蜀山传奇数据库
java 数据库 长连接
中心数据库定义
陕西服务器硬盘报价
昌平hp服务器回收
南通网络安全咨询报价
数据库创建约束sql语句
计算机网络技术研究生
新氧科技是互联网公司吗
三门峡市国家网络安全宣传周
matebook适合软件开发
鹅厂网络安全
网络安全的损失
惠普服务器开机显示pxe
华为服务器测试装备方案