码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 消息中间件概述


    文章目录

    • 一 什么是消息中间件
      • 1.1 简介
      • 1.2 什么是队列
        • 1.2.1 队列的特性
        • 1.2.2 队列的分类
      • 1.3 什么是消息
      • 1.4 消息中间件
      • 1.5 消息队列
      • 1.6 消息中间件的优势
    • 二 消息中间件应用场景
      • 2.1 异步处理
      • 2.2 应用解耦
      • 2.3 流量削峰
      • 2.4 消息驱动的系统
      • 2.5 日志处理
      • 2.6 顺序保证
      • 2.7 消息通讯
    • 三 消息中间件常用协议
      • 3.1 JMS协议
      • 3.2 AMQP协议
      • 3.3 MQTT协议
      • 3.4 STOMP协议
      • 3.5 XMPP协议
      • 3.6 其他基于TCP/IP自定义的协议
    • 四 常见消息中间件的对比
      • 4.1 RabbitMQ
        • 简介
        • 主要特性
        • 优点
        • 缺点
      • 4.2 RocketMQ
        • 简介
        • 主要特性
        • 优点
        • 缺点
      • 4.3 ActiveMQ
        • 简介
        • 主要特性
        • 优点
        • 缺点
      • 4.4 Kafka
        • 简介
        • 主要特性
        • 优点
        • 缺点
      • 4.5 总结
    • 五 消息中间件的传输模式
      • 5.1 点对点
        • 5.1.1 即发即弃
        • 5.1.2 请求/回复
      • 5.2 发布/订阅模型(Pub/Sub)


    一 什么是消息中间件

    1.1 简介

    消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。

    1.2 什么是队列

    队列是一种线性表。它允许在表的一端插入数据,在另一端删除元素。插入元素的这一端称之为队尾。删除元素的这一端我们称之为队首。

    1.2.1 队列的特性

    1. 在队尾插入元素,在队首删除元素
    2. FIFO(先进先出),就像排队取票一样

    1.2.2 队列的分类

    1. 顺序队列

      在这里插入图片描述

    2. 循环队列

      在这里插入图片描述

    1.3 什么是消息

    消息是指软件对象之间进行交互作用和通讯利用的一种方式。

    image-20210219092840842

    消息就是应用程序中间传输的数据,例如:用户下的订单、用户发表的评论、各种传感器采集的数据等等,这些都是消息,所以消息就是数据的等价名词

    1.4 消息中间件

    消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。

    消息中间件关注于数据的发送和接收,利用高效可靠的异步消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。

    image-20210219093227702

    1.5 消息队列

    消息队列是消息中间件的一种实现方式。

    image-20210219093024469

    大部分的消息中间件都是通过消息队列这种技术来实现的,例如:ActiveMQ、RabbitMQ 、ZeroMQ、Kafka、MetaMQ、RocketMQ等。

    消息队列的特点:

    • 先进先出:消息队列的顺序在入队的时候就基本已经确定了,一般是不需人工干预的。

    • 发布订阅:发布订阅是一种很高效的处理方式,如果不发生阻塞,基本可以当成是同步操作。

    • 持久化:持久化确保消息队列的使用不只是一个部分场景的辅助工具,而是让消息队列能像数据库一样存储核心的数据。

    • 分布式:在现在大流量、大数据的使用场景下,支持分布式的部署,才能被广泛使用。消息队列的定位就是一个高性能的中间件。

    1.6 消息中间件的优势

    系统解耦

    交互系统之间没有直接的调用关系,只是通过消息传输,故系统侵入性不强,耦合度低。

    提高系统响应

  • 相关阅读:
    Vue学习——props(23)
    国产芯片ZT1826亮相IOTE展 以物联网技术助力行业数字化转型
    03_Node.js模块化开发
    Flink系列文档-(YY04)-Flink编程基础API-Transformation算子
    Xavier(7):ubuntu主机减少 NVIDIA sdkmanager 及相关文件的占用空间
    112. Path Sum刷题笔记
    腾讯三面:Spring Boot夺命连环30问,被Java面试官怼的怀疑人生
    FISCO BCOS(三十七)———FISCOBCOS应用开发,交易hash、区块高度的获取
    面向对象(三):常用知识下
    判断数组类型的方法(Array.isArray)以及Math数字对象
  • 原文地址:https://blog.csdn.net/qq_39280718/article/details/126851641
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号