李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
RabbitMQ初步学习(一)
Leefs
2020-04-03 AM
1862℃
0条
# RabbitMQ初步学习(一) ### 一、初始RabbitMQ RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AMQP协议的。 ### 二、RabbitMQ的优点 + 1.开源、性能优秀,稳定性保障 + 2.提供可靠性消息投递模式(confirm)、返回模式(return) + 3.与SpringAMQP完美的整合、API丰富 + 4.集群模式丰富,表达式配置,HA模式,镜像队列模型 + 5.保证数据不丢失的前提做到高可靠性、可用性 ### 三、RabbitMQ高性能原因 + 1.Erlang语言最初在于交换机领域的架构模式,这样使得RabbitMQ在Broker之间进行数据交互的性能是非常优秀的 + 2.Erlang的优点:Erlang有着和原生Socket一样的延迟 ### 四、AMQP高级消息队列协议介绍 AMQP(Advanced Message Queuing Protocol):全称**高级消息队列协议**,是具有现代特征的二进制协议。是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。 ### 五、AMQP协议模型 ![RabbitMQ初步学习(一)01.png][1] > 生产者生产的消息通过Server->Virtual Host -> Exchange > > Exchange和Queue之间进行绑定 > > 消费者只需要监听Queue消息队列即可 ### 六、AMQP核心概念 + 1.**Server:又称Broker**,接受客户端连接,实现AMQP实体服务 + 2.**Connection:连接**,应用程序与Broker的网络连接 + 3.**Channel:网络信道**,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道。客户端可以建立多个Channel,每个Channel代表一个会话任务。 + 4.**Message:消息**,服务器和应用程序之间传送的数据,有Properties和Body组成。Properties可以对消息进行修饰,比如消息的优先级,延迟等高级特性;Body就是消息体内容。 + 5.**Virtual Host:虚拟地址**,用于进行逻辑隔离,最上层的消息路由。一个Virtual Host里面可以有若干个Exchange和Queue,同一个Virtual Host里面不能有相同名称的Exchange或Queue。 + 6.**Exchange:交换机**,用于接收消息, 根据路由键转发消息到绑定的队列 + 7.**Binding**:Exchange和Queue之间的虚拟连接,binding中可以包含routing key + 8.**Routing Key:**一个路由规则,虚拟机可用它来确定如何路由一个特定消息 + 9.**Queue:**也称为Message Queue,消息队列,用于保证消息并将它们转发给消费者 ### 七、RabbitMQ的整体架构 ![RabbitMQ初步学习(一)02.jpg][2] > + 1.生产者只需要将消息发送到Exchange即可 > + 2.消费者只需要监听对应的消息队列即可 > + 3.Exchange绑定多个Queue时,要通过Routing Key进行路由 ### 八、RabbitMQ消息流转 ![RabbitMQ初步学习(一)03.png][3] [1]: https://lilinchao.com/usr/uploads/2020/04/2948199186.png [2]: https://lilinchao.com/usr/uploads/2020/04/3409328227.jpg [3]: https://lilinchao.com/usr/uploads/2020/04/4152953564.png
标签:
SpringCloud
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/787.html
上一篇
消息队列中点对点与发布订阅区别
下一篇
RabbitMQ初步学习(二)--环境安装和基本命令
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
VUE
Nacos
Jquery
SpringCloud
JavaSE
Eclipse
Docker
查找
Yarn
Flink
pytorch
Jenkins
链表
Flume
LeetCode刷题
Http
Spring
Tomcat
DataX
并发线程
SpringBoot
高并发
Kibana
gorm
Spark SQL
ajax
数据结构和算法
Hadoop
Kafka
Azkaban
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭