热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RabbitMQ和AMQP协议简介(RabbitMQ学习笔记1)

文章目录一、RabbitMQ简介1.1RabbitMQ的优势二、AMQP协议2.1AMQP简介2.2AMQP核心概念一、RabbitMQ简介RabbitMQ是一个开源的消息代理和


文章目录

    • 一、RabbitMQ简介
        • 1.1 RabbitMQ的优势
    • 二、AMQP协议
        • 2.1 AMQP简介
        • 2.2 AMQP核心概念


一、RabbitMQ简介

RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AMQP协议的。


1.1 RabbitMQ的优势


  1. 开源、性能优秀,稳定性保障
  2. 提供可靠性消息投递模式(confirm)、返回模式(return)
  3. 与SpringAMQP完美的整合、API丰富
  4. 集群模式丰富,表达式配置,HA模式,镜像队列模型
  5. 保证数据不丢失的前提做到高可靠性、可用性

二、AMQP协议


2.1 AMQP简介

AMQP全称:Advanced Message Queuing Protocol 也就是高级消息队列协议的意思。
AMQP协议模型如下图所示:消息生产者将消息投递到Exchange中,Exchange将消息转发到相应的队列中。消费者只需要监听Message Queue消息队列即可。
在这里插入图片描述


2.2 AMQP核心概念

Server: MQ服务器又称Broker,用于接收客户端的连接,实现AMQP实体服务。
Connection: 应用程序和Broker建立网络连接
Channel: 网络信道,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道。客户端可建立多个Channel,每个Channel代表一个会话任务。
Message: 消息,服务器和应用程序之间传送的数据,由Properties和Body组成。Properties可以对消息进行设置,比如消息的优先级、延迟等高级特性;Body就是消息体内容。
Virtual host: 虚拟主机,用于进行逻辑隔离,最上层的消息路由,将不同的服务划分开。一个Virtual Host里面可以有若干个Exchange和Queue,同一个Virtual Host 里面不能有相同名称的Exchange或Queue(注: 这里解释一下逻辑隔离,如果你接触过redis就应该知道,redis中默认划分了16个数据库,db0—db15。如果总共的内存空间是16G,那么这16G并不是平均分配给一个数据库的,你可以只利用一个数据库去使用全部的16G内存空间。所以这16个数据库只是在逻辑上被区分开,并没有在物理空间上进行划分。)
Exchange: 交换机,接收消息,根据路由键转发消息到绑定的队列。
Binding: Exchange和Queue之间的虚拟连接,binding中可以包含routing key
Routing key: 路由键,一个路由规则,Exchange可用它来确定如何路由一个信息到指定的队列
Queue: 也就是Message Queue,消息队列,保存消息并将它们转发给消费者


推荐阅读
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • 使用WinForms 实现 RabbitMQ RPC 示例
    本文通过两个WinForms应用程序演示了如何使用RabbitMQ实现远程过程调用(RPC)。一个应用作为客户端发送请求,另一个应用作为服务端处理请求并返回响应。 ... [详细]
  • 历经两个月,他成功斩获阿里巴巴Offer
    经过两个月的努力,一位普通的双非本科毕业生最终成功获得了阿里巴巴的录用通知。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
  • 深入解析Hadoop的核心组件与工作原理
    本文详细介绍了Hadoop的三大核心组件:分布式文件系统HDFS、资源管理器YARN和分布式计算框架MapReduce。通过分析这些组件的工作机制,帮助读者更好地理解Hadoop的架构及其在大数据处理中的应用。 ... [详细]
  • Spring Cloud Config 使用 Vault 作为配置存储
    本文探讨了如何在Spring Cloud Config中集成HashiCorp Vault作为配置存储解决方案,基于Spring Cloud Hoxton.RELEASE及Spring Boot 2.2.1.RELEASE版本。文章还提供了详细的配置示例和实践建议。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 当面临数据库清理任务时,若无删除或重建数据库的权限,可以通过编写SQL脚本来实现批量删除用户自定义的数据表和存储过程。本文将详细介绍如何构造这样的SQL脚本。 ... [详细]
  • 利用RabbitMQ实现高效延迟任务处理
    本文详细探讨了如何利用RabbitMQ实现延迟任务,包括其应用场景、实现原理、系统设计以及具体的Spring Boot实现方式。 ... [详细]
  • 本文提供了一个详细的PHP用户认证和管理的代码示例,包括用户登录验证、数据库连接、错误处理等关键部分的实现。 ... [详细]
  • 一、搭建项目创建Maven项目导入rabbitmq包com.rabbitmqamqp-clien ... [详细]
  • MQTT协议:轻量级消息传输的基石
    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种基于发布/订阅模式的轻量级通信协议,适用于低带宽、高延迟或不可靠的网络环境。该协议基于TCP/IP构建,由IBM在1999年首次推出,旨在通过最小化网络流量和代码量,为远程设备提供高效、可靠的消息传输服务。 ... [详细]
  • 本文介绍了如何在三台CentOS 7.5虚拟机上通过Docker部署RabbitMQ集群,包括环境准备、容器创建、集群配置及故障处理等内容。 ... [详细]
author-avatar
壞小籽z_339
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有