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安全错误
数据库的锁怎样保障安全
济南系统软件开发机构
数据库的逻辑层是什么
工控网络安全建设常见问题
热血传奇最高级别服务器
虎瑞科技是互联网吗
数据库的关系运算例题
198家全国网络安全
edna数据库
记录仪软件开发
北京网警网络安全
网络安全教育总结与心得
网络安全横版
西安市网络安全比赛
成都青白江软件开发公司
实现网络技术信息化论文
软件开发如何评价优势
云端服务器跟本地差别
千千静听歌词秀连接服务器失败
电子数据库检测
游侠进入服务器链接4次失败
小u管理服务器
博硕搅拌站操作系统删除数据库
做一个电影需要什么服务器
国家网络安全ppt下载
spl 语言 数据库 国产
北纬科技有互联网彩票
常用的关系型数据库ldap
免费民国报纸数据库
进入网络安全行业好吗
永煊互联网科技有限公司