IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> RabbitMQ(1)——MQ概述 -> 正文阅读

[大数据]RabbitMQ(1)——MQ概述

RabbitMQ(1)——MQ概述

什么是MQ

MQ(message queue),本质上是一个队列,FIFO先进先出。可以将消息在不同进程之间传递。

为什么要用MQ

流量消峰
??就是假如一个系统只能处理一万次订单,当超过这个限制就会产生问题。使用消息队列,可以让所有的请求都放在mq的消息队列中,然后系统从mq中接收请求处理。这样就能将一秒内的请求分成多秒来处理。好处就是总比系统承受不住无法访问的好,坏处就是延时增长。
应用解耦
??很简单,之前没用mq的时候,各个微服务直接就是互相调用,即便有熔断降级,但是一旦调用链上有一个微服务挂了,返回的都不是想要的结果。有了mq后,各微服务都是和mq进行通信,即使中间有一个微服务挂了,只要能在一定时间内修复,在挂的这一段时间其他微服务还是能提供服务给用户。
异步处理
??有一些服务之间的调用采用的异步的方式,也就是调用其他服务,不需要阻塞等待服务返回结果。一般采用轮询或者提供一个回调api的方式来处理。但是轮询消耗资源,提供一个回调api又要增加代码量。使用mq,异步的结果可以通过mq来得知/

MQ分类

ActiveMQ
??有点是单机吞吐量万级,时效性ms级,可用性高,基于主从架构实现高可用性。
??缺点是官方社区对ActiveMQ5.x维护越来越少,高吞吐量场景较少使用,
Kafka
??大数据的杀手锏。优点是性能卓越,单机写入TPS约在百万条/秒,吞吐量高。时效性ms级可用性非常高。kafka是分布式的,一个数据多个副本,少数机器宕机不会丢失数据。在大数据领域实时计算以及日志采集被大规模使用。
??缺点是kafaka单机超过64个队列/分区,Load会发生明显飙高现象,队列越多,load越高。发送消息响应时间变长,使用短轮询方式,实时性取决于轮询间隔时间;消息失败不支持重试;支持消息顺序,但是一台代理宕机后,就会产生消息乱序,社区更新较慢;
RocketMQ
??RocketMQ出自阿里巴巴,用java语言实现。在阿里广泛应用在订单、交易、充值、流计算、消息推送、日志流处理、binglog分发等。
??优点是单机吞吐量十万级,可用性非常高。消息可以做到0丢失。采用分布式,扩展性好,支持10亿级别的消息堆积,而且不会因为堆积导致性能下降。源码是java编写,便于开发者阅读和拓展。
??缺点是支持的客户端语言不多,目前是java和c++,其中c++不成熟。社区活跃度一般。没有在MQ核心中去实现JMS等接口,有些系统要迁移需要修改大量代码。
??选择场景:对于可靠性要求很高的场景,尤其是扣款等业务。还有服务需要削峰。这些高并发又要高稳定的场景下。
RabbitMQ
??2007年发布,是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,目前最主流的消息中间件之一。
??优点是由于erlang语言的高并发特性,性能较好。吞吐量到万级,MQ功能比较完备,稳定,易用,跨平台,支持多种语言。社区活跃度高。
??缺点是商业版需要收费
??选择场景:性能好时效性微妙级。如果数据量没有特别大,中小型公司优先选择功能比较完备的RabbitMQ

RabbitMQ概述

??RabbitMQ是一个消息中间件,它有四大核心概念,分别为生产者、交换机、队列和消费者。
??RabbitMQ有六大核心模式,分别为简单模式、工作模式、发布订阅模式、路由模式、主题模式、发布确认模式。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 09:53:50  更:2021-08-06 09:56:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 20:16:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码