Chiriri's blog Chiriri's blog
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)

Iekr

苦逼后端开发
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)
  • JavaSE

  • JavaEE

  • Linux

  • MySQL

  • NoSQL

  • Python

  • Python模块

  • 机器学习

  • 设计模式

  • 传智健康

  • 畅购商城

  • 博客项目

  • JVM

  • JUC

  • Golang

  • Kubernetes

  • 硅谷课堂

  • C

  • 源码

  • 神领物流

  • RocketMQ

    • RocketMQ 概述
      • MQ 用途
        • 限流削峰
        • 异步解耦
        • 数据收集
      • 常见MQ产品
      • MQ常见协议
    • RocketMQ 的安装与启动
    • RocketMQ 工作原理
    • RocketMQ 应用
  • 短链平台

  • 后端
  • RocketMQ
Iekr
2023-11-18
目录

RocketMQ 概述

# RocketMQ 概述

MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生 产、存储、消费全过程 API 的软件系统。消息即数据。一般消息的体量不会很大。

# MQ 用途

# 限流削峰

MQ 可以将系统的超量请求暂存其中,以便系统后期可以慢慢进行处理,从而避免了请求的丢失或系统 被压垮。

image-20231118222331721

# 异步解耦

上游系统对下游系统的调用若为同步调用,则会大大降低系统的吞吐量与并发度,且系统耦合度太高。而异步调用则会解决这些问题。所以两层之间若要实现由同步到异步的转化,一般性做法就是,在这两层间添加一个 MQ 层。

image-20231118222429458

# 数据收集

分布式系统会产生海量级数据流,如:业务日志、监控数据、用户行为等。针对这些数据流进行实时或批量采集汇总,然后对这些数据流进行大数据分析,这是当前互联网平台的必备技术。通过 MQ 完成此类数据收集是最好的选择。

# 常见 MQ 产品

  • ActiveMQ:ActiveMQ 是使用 Java 语言开发一款 MQ 产品。早期很多公司与项目中都在使用。但现在的社区活跃度已经很低。现在的项目中已经很少使用了。
  • RabbitMQ:RabbitMQ 是使用 ErLang 语言开发的一款 MQ 产品。其吞吐量较 Kafka 与 RocketMQ 要低,且由于其不是 Java 语言开发,所以公司内部对其实现定制化开发难度较大。
  • Kafka:Kafka 是使用 Scala/Java 语言开发的一款 MQ 产品。其最大的特点就是高吞吐率,常用于大数据领域的实时计算、日志采集等场景。其没有遵循任何常见的 MQ 协议,而是使用自研协议。对于 Spring Cloud Netflix,其仅支持 RabbitMQ 与 Kafka。
  • RocketMQ:RocketMQ 是使用 Java 语言开发的一款 MQ 产品。经过数年阿里双 11 的考验,性能与稳定性非常高。其没有遵循任何常见的 MQ 协议,而是使用自研协议。对于 Spring Cloud Alibaba,其支持 RabbitMQ、Kafka,但提倡使用 RocketMQ。
关键词 ACTIVEMQ RABBITMQ KAFKA ROCKETMQ
开发语言 Java ErLang Java Java
单机吞吐量 万级 万级 十万级 十万级
Topic - - 百级 Topic 时会影响系统吞吐量 千级 Topic 时会影响系统吞吐量
社区活跃度 低 高 高 高

# MQ 常见协议

一般情况下 MQ 的实现是要遵循一些常规性协议的。常见的协议如下:

  • JMS:Java Messaging Service(Java 消息服务)。是 Java 平台上有关 MOM(Message OrientedMiddleware,面向消息的中间件 PO/OO/AO)的技术规范,它便于消息系统中的 Java 应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口,简化企业应用的开发。ActiveMQ 是该协议的典型实现。
  • STOMP:Streaming Text Orientated Message Protocol(面向流文本的消息协议),是一种 MOM 设计的简单文本协议。STOMP 提供一个可互操作的连接格式,允许客户端与任意 STOMP 消息代理(Broker)进行交互。ActiveMQ 是该协议的典型实现,RabbitMQ 通过插件可以支持该协议。
  • AMQP:Advanced Message Queuing Protocol(高级消息队列协议),一个提供统一消息服务的应用层标准,是应用层协议的一个开放标准,是一种 MOM 设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端 / 中间件不同产品,不同开发语言等条件的限制。 RabbitMQ 是该协议的典型实现。
  • MQTT:Message Queuing Telemetry Transport(消息队列遥测传输),是 IBM 开发的一个即时通讯协议,是一种二进制协议,主要用于服务器和低功耗 IoT(物联网)设备间的通信。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器的通信协议。 RabbitMQ 通过插件可以支持该协议。
编辑 (opens new window)
上次更新: 2023/12/06, 01:31:48
环境搭建与登录
RocketMQ 的安装与启动

← 环境搭建与登录 RocketMQ 的安装与启动→

最近更新
01
k8s
06-06
02
进程与线程
03-04
03
计算机操作系统概述
02-26
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Iekr | Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式