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

RabbitMQ简介

RabbitMQ简介

  • 1、RabbitMQ简介
    • 1.1、简介
    • 1.2、相关网址
    • 1.3、消息中间件(MQ=Message Queue)
    • 1.4、常用的消息中间件
  • 2、MQ(Message Queue)的应用场景
    • 2.1、异步处理
    • 2.2、系统解耦
    • 2.3、流量削峰
    • 2.4、日志处理

1、RabbitMQ简介

1.1、简介

RabbitMQ是一个广泛使用的消息服务器,采用Erlang语言编写,是一种开源的实现 AMQP(高级消息队列协议)的消息中间件;
RabbitMQ最初起源于金融系统,它的性能及稳定性都非常出色;
AMQP协议(http://www.amqp.org),即 Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计;
我们学的协议有哪些:(http、ftp)

1.2、相关网址

RabbitMQ官网:https://www.rabbitmq.com
Github:https://github.com/rabbitmq

1.3、消息中间件(MQ=Message Queue)

简单来说,消息中间件就是指保存数据的一个容器(服务器),可以用于两个系统之间的数据传递。
消息中间件一般有三个主要角色:生产者、消费者、消息代理(消息队列、消息服务器);
在这里插入图片描述
生产者发送消息到消息服务器,然后消费者从消息代理(消息队列)中获取数据并进行处理;

1.4、常用的消息中间件

目前比较主流的几个消息中间件:

  • RabbitMQ
  • kafka(大数据领域)
  • RocketMQ(阿里巴巴开源)献给Apache组织
  • pulsar(最近一两年流行起来的)

2、MQ(Message Queue)的应用场景

2.1、异步处理

下订单:下订单–》加积分–》发红包–》发手机短信
下订单—向MQ 发消息–》积分系统,红包系统,手机短信系统接收消息
在这里插入图片描述
同步是阻塞的(会造成等待),异步是非阻塞的(不会等待);
大流量高并发请求、批量数据传递,就可以采用异步处理,提升系统吞吐量;

2.2、系统解耦

多个系统之间,不需要直接交互,通过消息进行业务流转;
在这里插入图片描述

2.3、流量削峰

高负载请求/任务的缓冲处理;
在这里插入图片描述

2.4、日志处理

主要是用kafka这个服务器来做;
日志处理是指将消息队列用于在日志处理中,比如Kafka解决大量日志传输的问题;
loger.info(…)
ELK 日志处理解决方案:
loger.error(…) -->logstash收集消息–> 发送消息的kafka --> elastic search (es) -->Kibana ELK日志处理平台


http://www.mrgr.cn/news/35527.html

相关文章:

  • C++中的栈(Stack)和堆(Heap)
  • 常见混淆概念理清:从搜索引擎和检索引擎的区别说起
  • 光伏数字化全面开启,光伏的未来该何去何从?
  • 如何使用Django写个接口,然后postman中调用
  • 数据结构中数据有序性/ 单调性 ——二分查找
  • <项目代码>YOLOv8 玉米地杂草识别<目标检测>
  • 《操作系统 - 清华大学》1 -2:操作系统概述 —— 什么是操作系统
  • 【C++取经之路】红黑树封装set
  • 关于养育孩子的一点想法
  • MATLAB算法实战应用案例精讲-【数模应用】路径规划
  • C++核心编程和桌面应用开发 第六天(this指针 友元)
  • Vue3中使用Pinia(封装并统一导出)
  • C++_CH19_继承
  • Make breakpoint pending on future shared library load
  • 【初阶数据结构】排序——插入排序
  • 阴影的基本原理
  • Linux驱动开发初识
  • mysql学习教程,从入门到精通,SQL RIGHT JOIN语句(24)
  • Robot Operating System——多边形数据
  • [大语言模型-论文精读] Diffusion Model技术-通过时间和空间组合扩散模型生成复杂的3D人物动作
  • Thread , ThreadLocal , ThreadLocalMap , Entry 之间的关系?
  • 宝塔部署vue项目出现的各种问题
  • 【算法】模拟:(leetcode)6.Z 字形变换(medium)
  • 光子架与电子架 -- 主从子架
  • 小程序面板开发教程|开发照明 Matter 面板步骤(一)
  • WebGL阴影与后期处理