原创 摸鱼笔记(一) ——分布式消息中间件 设计篇

发布时间:2021-08-03 17:23:14 浏览 205 来源:猿笔记 作者:Sitr_摸鱼

    简单说就是多个系统协调处理一个请求。分布式系统架构有可能会有很高的耦合度。-利用高效可靠的消息传递机制进行平台无关的数据交流。-给予数据通信来进行分布式系统的集成:-通过提供消息传递和消息排队模型:它可以在分布式环境下扩展进程间的通信:一种主要负责数据的接收和传递。-持久化机制:-消息分发机制。协议是计算机之间通信时共同遵从的一组约定。在可靠性消息处理上具备天然的优势,MQTT消息队列遥测传输是IBM开发的即时通讯协议物联网系统架构的重要组成部分轻量、结构简单、传输快没有持久化相关设计计算能力有限、低宽带、网络不稳定的场景


    #主题列表:juejin,github,smartblue,cyanosis,channing-cyan,fancy,hydrogen,condensed-night-purple,greenwillow,v-green,vue-pro,healer-readable,mk-cute,jzman,geek-black,awesome-green,qklhk-chocolate

    #投稿主题:

    theme:condensed-night-purple

    highlight:

    #什么是分布式消息中间件

    简单地说,分布式系统架构是多个系统协调处理一个请求。然而,分布式系统架构可能具有高度耦合。通过引入分布式消息中间件,可以很好的解耦。

    # #什么是消息中间件

    -使用高效可靠的消息传递机制进行独立于平台的数据交换

    为分布式系统的集成提供数据通信

    -通过提供消息传递和消息队列模型,可以扩展分布式环境中进程之间的通信。

    # #通用消息中间件

    -ActiveMQ

    -RabbitMQ

    -Kafka

    -RocketMQ

    #消息中间件核心设计

    消息队列MQ可以联结producer和consumer之间的一个纽带。

    ##本质

    一个主要负责数据的收发,性能普遍高于普通程序。

    ##5核心

    -协议

    -持久性机制

    -消息分发机制

    -高可用性设计

    -高度可靠的设计

    下面简单介绍一下这五个核心。

    ###协议

    协议是计算机相互通信时遵循的一组约定。

    协议的三个要素:

    -语法

    -语义

    -时序

    消息中间件的常见协议:

    -OpenWire

    -AMQP

    -MQTT

    -Kafka

    -OpenMessage

    ####AMQP协议

    AMQP(AdvancedMesageQueuingProtocol)是高级消息队列协议。

    特点:交易支持,持久支持,生于金融行业,消息处理可靠有天然优势。

    ####MQTT

    MQTT消息队列遥测传输是IBM开发的即时通讯协议和物联网系统架构的重要组成部分。

    特点:重量轻,结构简单,传输快,不支持事务,不持久设计。

    应用场景:计算能力有限、宽带低、网络不稳定的场景。

    ####OpenMessage协议

    OpenMessaging是中国分布式消息传递领域的第一个国际标准。

    特点:结构简单,解析快速,事务设计,持久化设计。

    ####Kafka协议

    卡夫卡协议是基于TCP的二进制协议。消息按长度分开,由一些基本数据类型组成。

    特点:结构简单,解析速度快,无事务设计,持久化设计。

    # # #坚持

    持久性意味着将数据存储到磁盘,并防止数据因服务重启而消失。

    一般有两种方式:写入文件系统和存储在数据库中。目前大多数分布式消息中间件都支持写入文件系统。

    # # #消息分发

    一般分为两种方式。

    一种是生产者向消费者推送消息,另一种是消费者从生产者那里拉消息。

    一般包括发布订阅、轮询分发、公平分发、重传和消息拉取。

    # # #高度可用

    高可用性是指产品在特定条件下、特定时间或时间间隔内执行特定功能的能力。

    做法:

    -主从共享数据的部署模式

    -主从同步部署模式(可以解决负载均衡的问题)

    -多主群集同步部署模式

    -多主集群转发部署模式

    # # #高可靠性

    高可靠性意味着系统可以连续运行而不会出现故障。比如一个系统从来不会死机报错,或者死机报错的概率低,这就是高可靠性。

作者信息

Sitr_摸鱼 [等级:3] Java
发布了 13 篇专栏 · 获得点赞 11 · 获得阅读 713

相关推荐 更多