RabbitMQ简介

RabbitMQ简介

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日志处理平台

相关推荐
清风19811 小时前
kafka消息可靠性传输语义
数据库·分布式·kafka
小诸葛的博客1 小时前
Kafka、RocketMQ、Pulsar对比
分布式·kafka·rocketmq
数据智能老司机3 小时前
CockroachDB权威指南——SQL调优
数据库·分布式·架构
数据智能老司机4 小时前
CockroachDB权威指南——应用设计与实现
数据库·分布式·架构
数据智能老司机4 小时前
CockroachDB权威指南——CockroachDB 模式设计
数据库·分布式·架构
RainbowSea21 小时前
6. RabbitMQ 死信队列的详细操作编写
java·消息队列·rabbitmq
RainbowSea21 小时前
5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
java·消息队列·rabbitmq
数据智能老司机1 天前
CockroachDB权威指南——CockroachDB SQL
数据库·分布式·架构
数据智能老司机1 天前
CockroachDB权威指南——开始使用
数据库·分布式·架构
数据智能老司机1 天前
CockroachDB权威指南——CockroachDB 架构
数据库·分布式·架构