すのはら荘春原庄的雪

RabbitMQ详解

Toretto·2023-08-25 09:01·30 次阅读

RabbitMQ详解

 

什么是RabbitMQ

使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。

RabbitMQ比Kafka可靠,Kafka更适合IO高吞吐的处理,一般应用在大数据日志处理或对实时性(少量延迟),可靠性(少量丢数据)要求稍低的场景使用,比如ELK日志收集。

RabbitMQ能做什么

RabbitMQ可以帮助开发者构建可靠、高效、可扩展的分布式系统,实现异步通信、任务分发和事件驱动等功能。它被广泛应用于各种场景,包括微服务架构、消息驱动的架构、实时数据处理等。

 

RabbitMQ工作机制

生产者#

消息的创建者,负责创建和推送消息到消息服务器

消费者#

消息的接收方,接受消息并处理消息

消息服务器#

RabbitMQ本身,不会产生和消费消息,相当于一个中转站,将生产者的消息路由给消费者

RabbitMQ角色

ConnectionFactory#

接管理,应用程序或消费方与RabbitMQ建立连接的管理器

Channel#

信道,推送消息的通道

Exchange#

交换机,用于接收分配消息到队列中

Queue#

保存消息

Routingkey#

消息会携带routingKey,决定消息最终的队列

BindingKey#

Queue通过bindingKey与交换机绑定

安装

【Windows安装RabbitMQ详细教程】_rabbitmq安装教程_慕之寒的博客-CSDN博客

RabbitMQ控制台介绍

2.1. overview概览#

2.2. Admin用户和虚拟主机管理#

2.2.1. 添加用户#

上面的Tags选项,其实是指定用户的角色,可选的有以下几个:

● 超级管理员(administrator)

● 可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。监控者(monitoring)

● 可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)策略制定者(policymaker)

● 可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。普通管理者(management)

● 仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。其他无法登陆管理控制台,通常就是普通的生产者和消费者。

2.2.2. 创建虚拟主机#

为了让各个用户可以互不干扰的工作,RabbitMQ添加了虚拟主机(Virtual Hosts)的概念。其实就是一个独立的访问路径,不同用户使用不同路径,各自有自己的队列、交换机,互相不会影响。2.2.3. 支持的消息模型#

5种消息模式#

1、简单模式 HelloWorld

一个生产者、一个消费者,不需要设置交换机(使用 默认的交换机)

2、工作队列模式 Work Queue

一个生产者、多个消费者(竞争关系),不需要设置交换机(使用默认 的交换机)

3、发布订阅模式 Publish/subscribe

需要设置类型为fanout的交换机,并且交换机和队列进行绑定, 当发送消息到交换机后,交换机会将消息发送到绑定的队列

4、路由模式 Routing

需要设置类型为direct的交换机,交换机和队列进行绑定,并且指定routing key,当发送消息到交换机后,交换机会根据routing key将消息发送到对应的队列

5、通配符模式 Topic

需要设置类型为topic的交换机,交换机和队列进行绑定,并且指定通配符方式的 routing key,当发送消息到交换机后,交换机会根据routing key将消息发送到对应的队列

五种消息模式详解RabbitMQ五大模式轻松理解_rabbitmq模式_风影浪子的博客-CSDN博客

 

posted @   想睡觉的小坤  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
目录
点击右上角即可分享
微信分享提示