当前位置: 首页 > news >正文

初识消息队列的世界

MQ的概述

MQ(message queue)即消息队列,遵循FIFO先入先出原则。其中消息可以很简单,也可也很复杂。

MQ通常用于系统通信(数据的传输)

1.同步通信

2.异步通信

MQ就是容器的一种具体实现,RabbitMQ就是MQ的一种实现

MQ的作用

MQ的主要工作就是接收并转发消息,对于不同的业务场景有不同的作用。

1.异步解耦:对较耗时的操作不立即返回结果,通过异步处理后才返回结果。

2.流量削峰:对于突发的流量,使用MQ处理可以控制流量,避免服务崩溃。

3.消息分发:多个系统需要对同⼀数据做出响应时,使用MQ进行消息分发。

4.延迟通知:需要在特定时间后发送通知的场景中,使用MQ的延迟消息功能。

RabbitMQ的优势

当前主流的3种MQ:

1.Kafka

在日志领域比较成熟,功能较为简单,追求高吞吐量,性能卓越,单机吞吐量到达百万级

2.RocketMQ

基于Java语言开发,借鉴Kafka进行设计,功能更加强大,吞吐量达十万级,在可用性、可靠性、稳定性方面有出色表现,但支持的客户端语言不多,社区活跃度一般

3.RabbitMQ

基于Erlang语言开发,功能较为完备,性能较好,吞吐量达万级,开源界面友好,支持大部分主流语言,社区活跃度较高

RabbitMQ的优势:

RabbitMQ较于Kafka具有更丰富的功能,相较RocketMQ具有活跃的社区。

RabbitMQ是一个实现了AMQP的消息队列服务,是当前主流的消息中间件之一。

AMQP,即Advanced Message Queuing Protocol(⾼级消息队列协议),是⼀个通⽤的应⽤层协议,提供统⼀消息服务的协议, 为⾯向消息的中间件设计。基于此协议的客⼾端与消息中间件可传递消息,并不受客⼾端或中间件, 开发语⾔等条件的限制。

在Ubuntu下安装RabbitMQ

RabbitMq需要Erlang语言的支持,在安装RabbitMq之前需要安装erlang。

1.更新软件包

sudo apt-get update 

(如果当前没有在root用户下,命令前需要加sudo)

Get的资源,不同环境会有所不同。

2.安装erlang

sudo apt-get install erlang

等待安装过程中会出现下面提示,输入y即可继续安装

3.查看是否安装成功

erl

安装成功会出现版本信息,输入hault(). 退出

4.安装rabbitmq

sudo apt-get install rabbitmq-server

此处也会出现下面提示,输入y即可继续安装

安装完成会自动启动。

5.确认安装结果

systemctl status rabbitmq-server

出现active(running)表示启动成功,如果未启动成功,前往/var/log/rabbitmq/目录下查看日志情况,检查完原因,输入sudo service rabbitmq-server start手动启动。

6.启用Rabbitmq管理界面

rabbitmq-plugins enable rabbitmq_management

7.访问界面

IP+port(15672为默认端口号)

输入默认的guest账号和guest密码,会出现无法进入。

8.通过命令添加管理员

添加用户admin,密码:admin

rabbitmqctl add_user admin admin

添加权限

rabbitmqctl set_user_tags admin administrator

此时回到界面输入对应的用户名和密码,即可进入界面

http://www.dtcms.com/a/394333.html

相关文章:

  • Python快速入门专业版(三十八):Python字典:键值对结构的增删改查与进阶用法
  • SpringCloudOAuth2+JWT:微服务统⼀认证方案
  • LeetCode 分类刷题:2517. 礼盒的最大甜蜜度
  • 深度学习优化器进阶:从SGD到AdamW,不同优化器的适用场景
  • C++ 之 【C++的IO流】
  • truffle学习笔记
  • 现代循环神经网络
  • vlc播放NV12原始视频数据
  • ThinkPHP8学习篇(七):数据库(三)
  • 链家租房数据爬虫与可视化项目 Python Scrapy+Django+Vue 租房数据分析可视化 机器学习 预测算法 聚类算法✅
  • MQTT协议知识点总结
  • C++ 类和对象·其一
  • TypeScript里的类型声明文件
  • 【LeetCode - 每日1题】设计电影租借系统
  • Java进阶教程,全面剖析Java多线程编程,线程安全,笔记12
  • DCC-GARCH模型与代码实现
  • 实验3掌握 Java 如何使用修饰符,方法中参数的传递,类的继承性以及类的多态性
  • 【本地持久化】功能-总结
  • 深入浅出现代FPU浮点乘法器设计
  • LinkedHashMap 访问顺序模式
  • 破解K个最近点问题的深度思考与通用解法
  • 链式结构的特性
  • 报表1-创建sql函数get_children_all
  • 9月20日 周六 农历七月廿九 哪些属相需要谨慎与调整?
  • godot实现tileMap地图
  • 【Unity+VSCode】NuGet包导入
  • QEMU虚拟机设置网卡模式为桥接,用xshell远程连接
  • Week 17: 深度学习补遗:Boosting和量子逻辑门
  • 【论文速递】2025年第13周(Mar-23-29)(Robotics/Embodied AI/LLM)
  • Webpack进阶配置