RabbitMQ详细介绍哦

RabbitMQ

一、走进RabbitMQ

1.消息中间件的简介

​ 消息中间件(消息队列)是分布式系统中重要的组件,主要解决了应用耦合、异步消息、流量削峰等问题实现高性能、高可用、可伸缩和最终一致性,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ等。

​ 以下介绍消息队列在实际应用中常用的使用场景:异步处理、应用解耦、流量削峰和消息通讯四个场景。

2.什么是RabbitMQ

​ RabbitMQ是一个由Erlang语言开发的AMQP的开源实现。

​ AMQP: Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品和开发语言等条件的限制。

​ RabbitMQ最初起源于金融系统,用在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。具体特点包括:

  • 可靠性

    使用一些机制来保证可靠性,如持久化、传输确认、发布确认。

  • 灵活的路由

    在消息进入队列之前,通过Exchange来路由消息。对于典型的路由功能,RabbitMQ已经提供了一些内置的Exchange来实现,针对复杂的路由功能,可以将多个Exchage绑定在一起,也通过插件机制实现自己的Exchange。

  • 消息集群

    多个RabbitMQ服务器可以组成一个集群,形成一个逻辑Broker。

  • 高可用

    队列可以在集群中的机器上进行镜像,使得在部分节点出现问题的情况下队列仍然可用。

  • 多种协议

    RabbitMQ迟滞多种消息队列协议,比如STOMP、MQTT等。

  • 多语言客户端

    RabbitMQ几乎迟滞所有常用语言,比如java、net、ruby

  • 管理界面

    RabbitMQ提供了一个易用的用户界面,使得用户可以监控和管理消息Broker的许多方面。

3.架构图与主要概念

在这里插入图片描述

RabbitMQ Server:也叫Broker server,它是一种传输服务,它的角色就是维护一条从Producer到Consumer的路线,保证数据能够按照指定的方式进行传输。

Producer:消息的生产者。如图中的ABC,都是数据的发送方。消息的生产者连接RabbitMQ服务器,然后将消息投递到Exchange。

Consumer:消息的消费者,如图123,数据的接收方。消息消费者订阅队列,RabbitMQ将Queue中的消息发送到消息消费者。

Exchange:生产者将消息发送到Exchange(交换器),由Exchange将消息路由到一个或多个Queue中(或者丢弃)。Exchange并不存储消息,RabbitMq中的Exchange有direct、fanout、topic、headers四种类型,每种类型对应不同的路由规则。

Queue:队列是RabbitMQ的内存对象,用于存储消息。消息消费者就是通过订阅队列来获取消息的,RabbitMQ中的消息都只能存储在Queue中,生产者生产消息最终投递到Queu中,消费者可以从Queue中获取消息并消费,多个消费者可以订阅同一个Queu,这时Queu中的消息会被平均分摊给多个消费这进行处理,而不是每个消费者都收到所有的消息并处理。

RoutingKey:生产者将消息发送给Exchange的时候,一般会指定一个routing key,来指定这个消息的路由规则,而这个routing key需要与Exchange Type及binding key联合使用才能最终生效。在Exchange Type与binding key固定的情况下,我们的生产者就可以在发送消息给Exchange时,通过指定routing key来决定消息流向哪里。RabbitMQ为routing key设定的长度限制为255 bytes。

Connection:连接,Producer和Consumer都是通过tcp连接到RabbitMQ Server的,胰脏我们可以看到,程序的起初处就是建立这个tcp连接。

Channells:信道,它建立在上述的tcp连接中,数据流动都是在channel中进行的,也就是说,一般情况时程序起始建立tcp,第二步就是建立这个channel。

VirtualHost:权限控制的基本单位,一个VirtualHost中有如干个Exchange和MessageQueue,以及指定被哪些user使用。

4.安装与启动

4.1 下载并安装Eralng

4.2 下载并安装rabbitmq

4.3 安装管理界面(插件)

进入rabbitMQ安装目录的sbin目录,输入命令

rabbitmq -plugins enable rabbitmq_management

4.4 重新启动服务

4.5 打开浏览器,地址栏输入http://127.0.0.1:15672,即可看到管理界面的登录页

默认账户和密码都是guest guest 

二、RabbitMQ发送与接收消息

1.直接模式 Direct

在这里插入图片描述

1.1 什么是Direct模式

我们需要将消息发给唯一一个节点使用时使用这种模式,这时最简单的一种形式。图片如下:

任何发送到Direct Exchange的消息都会被转发到RouteKey中指定的Queue。

  • 一般情况下可以使用rabbitMQ中的Exchange。
  • 这种模式下可以不需要将Exchange进行任何绑定操作
  • 消息传递时需要一个RouteK
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

erwang1123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值