RabbitMQ的简介

消息中间件介绍

MQ的衡量指标

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

不同MQ特点的对比

Kafka

追求高性能,高吞吐量,用于日志收集,对消息的重复、丢失、错误没有严格的要求,所以做可靠性的东西,不推荐

RocketMQ

高性能,可靠性,高稳定性,高性能,易于水平扩展,但收费

RabbitMQ

高可靠性,高稳定性,对性能和吞吐量比kafka差一些

RabbitMQ概述

RabbitMQ是一个开源的消息代理和队列的服务器,用来通过普通协议在完全不同的应用之间共享数据(比如生产短是java,消费端是c#),基于AMQP协议

使用RabbitMQ优点

滴滴、美团、头条……都在使用RabbitMQ

开源、性能优秀、稳定性保障

提供可靠性消息投递模式(confirm)、返回模式(return)

与SpringAPMQ完美的整合、API丰富

集群模式丰富,表达式配置(集群策略可表达式配置),HA模式,镜像队列模型

保证数据不丢失的前提做到高可靠性、可用性

高性能的原因

Erlang的优点:Erlang有着和原生socket一样的延迟

Erlang语言在进行数据同步和数据交换性能是非常优秀的(延迟低),使得Rabbit在Broker之间进行数据交互的性能非常优秀

AMQP高级消息队列协议

是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层的一个开放标准,为面向消息中间件设计

AMQP协议模型

https://i-blog.csdnimg.cn/blog_migrate/2ca4d5106f8f02a7ec4dbfad27ed26e0.png

AMQP核心概念

Server:

又称Broker,接收客户端连接,实现AMQP实体服务

Connet

连接,应用程序与Broker的网络连接

Channel

网络信道,机会所有的操作在Channel进行,Channel是进行消息读写的通道。客户端可以建立多个channel,每个channel代表一个会话任务

Message

消息,服务器和应用程序之间传送的数据,由Properties和Body组成。Properties可以对消息进行装饰,比如消息的优先级、延迟等高级特性。Body是消息的实体内容

Virtual host

虚拟主机,用于逻辑隔离,最上层的消息路由。一个Virtual host里可以有多个Exchange和Queue,同一个Virtual host里不能有相同的Exchange和Queue

Exchange

交换机,接收消息,根据路由键转发消息到绑定的队列

Binding

Exchange和Queue之间的虚拟连接,binging中可以包含routing key

Routing key

一个路由规则,虚拟机可用它来确定如何路由一个特定消息

Queue

消息队列,保存消息并将它们转发消费者

RabbitMQ的整体架构

RabbitMQ消息流转

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值