RabbitMQ的原理和作用是什么
发表于:2024-11-12 作者:千家信息网编辑
千家信息网最后更新 2024年11月12日,本篇内容介绍了"RabbitMQ的原理和作用是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、
千家信息网最后更新 2024年11月12日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安全错误
数据库的锁怎样保障安全
绍兴软件开发工程师工资
网络安全各级人员要求
网络安全数据建模
滕州网络安全宣传片
mysql数据库设置的索引
服务器自动配置文件路径
廊坊服务器有没有高铁
戴尔amd服务器订制
网络安全法未经许可出售
protege数据库导入
蓝牙无线耳机软件开发
济南哪里学软件开发
网络安全公安前言
数据库开发是做成软件
量化交易 数据库
学习计算机网络技术前景
dns服务器源码
服务器拔了硬盘一直在响
php从数据库中查询数据
林玉华软件开发
湖北网络安全等级保护二级费用
差异表达分析数据库
部队网络安全防范小妙招
软件开发实战视频
网络安全 移动 高亮
农村老年网络安全宣传
服务器内存扩展怎么设置
深圳卫星软件开发批发价
关于软件开发项目计划书
哪里可以学软件开发