美文网首页大数据开发
大数据开发:消息队列技术入门

大数据开发:消息队列技术入门

作者: 成都加米谷大数据 | 来源:发表于2021-07-23 17:57 被阅读0次

在大数据技术生态当中,消息中间件的解决方案很多,基于不同的应用场景,对于消息传递也有不同的需求,这其中,消息队列算是比较典型的一种思路。今天的大数据开发学习分享,我们就主要来讲讲,消息队列技术入门。

所谓消息队列,其实就是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。

通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中的一个重要组件,有着举足轻重的地位。

消息队列的特点

采用异步处理模式

消息发送者可以发送一个消息而无须等待响应。消息发送者将消息发送到一条虚拟的通道(主题或队列)上,消息接收者则订阅或是监听该通道。

一条信息可能最终转发给一个或多个消息接收者,这些接收者都无需对消息发送者做出同步回应。整个过程都是异步的。

应用系统之间解耦合

主要体现在如下两点:

发送者和接受者不必了解对方、只需要确认消息。

发送者和接受者不必同时在线。

比如在线交易系统为了保证数据的最终一致,在支付系统处理完成后会把支付结果放到消息中间件里,通知订单系统修改订单支付状态。两个系统是通过消息中间件解耦的。

消息队列的传递服务模型

消息队列的传递服务模型如下图所示:

消息队列的的传输模式

点对点模型

点对点模型用于消息生产者和消息消费者之间点到点的通信。消息生产者将消息发送到由某个名字标识的特定消费者。

这个名字实际上对于消费服务中的一个队列(Queue),在消息传递给消费者之前它被存储在这个队列中。

队列消息可以放在内存中也可以持久化,以保证在消息服务出现故障时仍然能够传递消息。

传统的点对点消息中间件通常由消息队列服务、消息传递服务、消息队列和消息应用程序接口API组成。

其典型的结构如下图所示:

特点如下:

每个消息只用一个消费者。

发送者和接受者没有时间依赖。

接受者确认消息接受和处理成功。

示意图如下所示:

发布/订阅模型(Pub/Sub)

发布者/订阅者模型支持向一个特定的消息主题生产消息。0或多个订阅者可能对接收来自特定消息主题的消息感兴趣。

在这种模型下,发布者和订阅者彼此不知道对方,就好比是匿名公告板。这种模式被概括为:多个消费者可以获得消息,在发布者和订阅者之间存在时间依赖性。

发布者需要建立一个订阅(Subscription),以便消费者能够订阅。订阅者必须保持持续的活动状态并接收消息。

在这种情况下,在订阅者未连接时,发布的消息将在订阅者重新连接时重新发布,如下图所示:

特性如下:

每个消息可以有多个订阅者。

客户端只有订阅后才能接收到消息。

持久订阅和非持久订阅。

注意以下三点:

发布者和订阅者有时间依赖:接受者和发布者只有建立订阅关系才能收到消息。

持久订阅:订阅关系建立后,消息就不会消失,不管订阅者是否都在线。

非持久订阅:订阅者为了接受消息,必须一直在线。当只有一个订阅者时约等于点对点模式。

关于大数据开发学习,消息队列技术入门,以上就为大家做了基本的介绍了。在现有的大数据技术生态当中,消息队列的使用是非常普遍的,而主流的消息队列组件,后续我们再详细讲解。

相关文章

  • 大数据开发:消息队列技术入门

    在大数据技术生态当中,消息中间件的解决方案很多,基于不同的应用场景,对于消息传递也有不同的需求,这其中,消息队列算...

  • 消息队列与RocketMq核心机制详解

    一、 消息队列 1.1 队列与消息队列 简单的来说,消息队列就是基于“先进先出的一种数据结构”,在开发中经常会用到...

  • RabbitMQ入门

    超详细的RabbitMQ入门,看这篇就够了! 思维导图 一、什么是消息队列 消息指的是两个应用间传递的数据。数据的...

  • 消息队列对比

    引用: 常用消息队列对比消息队列及常见消息队列介绍 常用消息队列 1. RabbitMQ 用erlang语言开发的...

  • 大数据开发:四种消息队列技术对比

    对于消息队列组件,在大数据技术生态当中,是有着多种解决方案的,在实际的开发任务当中,往往需要根据具体的需求,去规划...

  • 扣丁学堂大数据培训分析Hadoop入门进阶

    凡事只有入门后才能了解更多,技术更是如此,大数据开发技术也是只有入门后才能更好的深入探究,本篇文章扣丁学堂大数据培...

  • MQ的作用

    消息中间件概述 消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被...

  • 大数据开发:消息队列如何实现分布式事务

    在大数据技术生态当中,消息队列,主要是针对实时消息流的处理,而实时消息流场景下,常常需要解决的一个问题,就是数据一...

  • 项目笔记5-KafKa

    目前最好的异步消息队列处理器 阻塞队列 写一个生产者消费者模式,使用阻塞队列 Kafka入门 消息持久化:消息永久...

  • 大数据开发:消息队列如何确保消息不丢失

    消息队列在大数据技术生态当中,一直都是值得重视的存在,开源的消息队列产品,市面上也不少,基于不同的场景,需要去匹配...

网友评论

    本文标题:大数据开发:消息队列技术入门

    本文链接:https://www.haomeiwen.com/subject/xwspmltx.html