RabbitMQ消息中间件技术精讲 笔记

你说的曾经没有我的故事 提交于 2019-11-30 21:01:54

目录

1. 主流消息中间件

2. 衡量一个MQ指标

3. RabbitMQ介绍

4. RabbitMQ高性能的原因

5. 什么是AMQP

6. AMQP核心概念

7. RabbitMQ整体架构


 

 

 

1. 主流消息中间件

  • ActiveMQ 最流行,完全支持JMS规范,不适合在高并发下使用,API丰富 性能不好
  • Kafka 分布式发布-订阅消息系统,基于pull模式来处理消息,追求吞吐量,不支持十五,对消息的重复,丢失,错误没有严格要求 关注性能
  • RocketMQ 阿里开源 Java编写 高吞吐高性能 适合大规模分布式系统,思路起源于Kafka 保证消息顺序 支持分布式事务 上亿消息堆积 商业版收费
  • RabbitMQ Erlang开发 AMQP协议实现 一致性,稳定性,可靠性比较好。 对性能和吞吐量的要求还在其次

2. 衡量一个MQ指标

  • 服务性能
  • 数据存储
  • 集群架构

 

3. RabbitMQ介绍

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

 

4. RabbitMQ高性能的原因

  • Erlang语言 在数据交换 数据同步方面非常优秀
  • Erlang有点 Erlang有和原生Scoket一样的延迟

 

5. 什么是AMQP

是具有现代特征的二进制协议 ,是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向对象的中间件设计

 

6. AMQP核心概念

  • Server 又称broker 接受客户端的连接
  • Channel 网络通道,是进行消息读写的通道 每个Channel代表一个会话任务
  • Message 消息 由properties 和 body组成,properties可以对消息修饰,body就是消息内容
  • Virtual host 虚拟地址 用于逻辑隔离 最上层的消息路由 一个Virtual host里面不能有相同名称的Exchange或Queue
  • Exchange 交换机 接收消息 根据路由键转发消息到绑定的队列
  • Binding Exchange和Queue之间的虚拟连接,binging中可以包含routingKey
  • RoutingKey 一个路由规则 虚拟机可以用它来确定如何路由一个特定消息
  • Queue 也称为MessageQueue 消息队列 保存消息并将他们转发给消费者

 

7. RabbitMQ整体架构

生产者不需要关注投递到哪个队列

消费者不需要关注消息从哪里来

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!