消息存储方式介绍|学习笔记

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 快速学习消息存储方式介绍

开发者学堂课程【RocketMQ 知识精讲与项目实战(第三阶段)消息存储方式介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/704/detail/12447


消息存储方式介绍

 

内容介绍:

一、消息的存储

二、存储的介质

三、总结

 

一、消息的存储

研究高级功能的第一个部分消息的存储,明白消息存储的意义,即我们在使用消息中间键的时候,需要考虑发送给 MQ 的消息,保证消息的高可靠性,不会丢失。通常在消息中间键都会有自动的持久化的机制,如果启用持久化的机制后,整个消息的发送和消息消费的流程如下:

image.png当消息的生产者发送消息到 MQ ,MQ 会将消息存储到本地硬盘当中,存储完消息 MQ 对消费生产者进行确认。当消息的消费者上线, MQ 将消息发送给消费者,消费者在本地处理完毕之后也会跟 MQ 进行确认。 MQ 就会将本地持久化的消息进行删除,因为消息已经处理就没有必要在进行保留。这就是整个消息的发送和消息消费的流程。

 

二、存储的介质

若考虑选择消息的介质该如何存储?存储介质如何选择?通常来讲,我们有两种方式:1.使用数据库存储2.使用文件系统之间进行存储

1.使用数据库存储

在 Apache 下存在一个知名的消息对硬件 ActiveMQ 默认关系型数据库进行存储,使用关系型数据库进行存储只需要在消息终结键中做一些简单的配置,告诉其数据库的具体位置,连接信息是什么?消息终结键自动的进行传入,存到关系型数据库做一些配置即可。存到关系型数据库可能会出现的问题:一般来说,消息量比较大在性能方面会出现性能瓶颈的问题,即数据量的达到千万级别的时候,使用关系型数据库取存储往往会拖慢系统的性能。若数据量不大可以考虑这种方式,若数据量较大,现在我们所用的互联网的数据量较大,可以使用这种方法却不是最好的选择。

2.使用文件系统之间进行存储

使用文件系统之间进行存储相比于使用数据存储更加直接,因为关系型数据库还是在系统中储存,直接在系统文件中储存更方便,文件系统属于比较主流的一种系统介质,直接给文件系统储存,比如我们熟知的 rocket、kafaka、rabbitMQ 等等,它们默认的都是直接存储到文件系统当中。其中要进行消息的存储化,通常分为两种模式:1.异步刷盘2.同步刷盘。文件系统作为存储介质,在性能上比关系型数据库优秀很多。若要存储到关系型数据库中,需要启动数据库的服务端,通过数据库的服务端才能存储到文件系统当中,直接存储到文件系统是性能上的提高。所以在 rocketMQ 当中,采用的就是此类方式。

 

三、总结:

在介绍消息存储的过程当中,主要说明两件事情:1.消息存储和消息存储化以及消息发送和消息消费、消息持久化的整体框架流程。2.介绍两种存储介质,微型数据库和文件系统。在 rocketMQ 当中使用的是文件系统的方式进行持久化。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
存储 消息中间件 安全
消息存储的流程|学习笔记
快速学习消息存储的流程
消息存储的流程|学习笔记
|
存储 消息中间件 安全
消息存储总结|学习笔记
快速学习消息存储总结
谈谈mq消息消费的2种方式
谈谈mq中消息消费的两种方式,pull和push如何选择
2064 0
|
存储 消息中间件 Linux
RocketMQ 消息存储结构|学习笔记
快速学习 RocketMQ 消息存储结构
RocketMQ 消息存储结构|学习笔记
|
存储 消息中间件 Java
3分钟白话RocketMQ系列—— 如何存储消息
3分钟白话RocketMQ系列—— 如何存储消息
244 0
|
8月前
|
存储 消息中间件 算法
【消息队列开发】 实现消息持久化
【消息队列开发】 实现消息持久化
|
消息中间件 存储 网络协议
|
消息中间件 Oracle 关系型数据库
ActiveMQ持久化消息的三种方式
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010741376/article/details/51254545 ActiveMQ持久化消息的三种方式 本文只介绍三种方式,分别是持久化为文件,MYSql,Oracle。
956 0
|
消息中间件 存储 Java
RocketMQ数据存储&集群原理&顺序消费
RocketMQ数据存储&集群原理&顺序消费
390 0
RocketMQ数据存储&集群原理&顺序消费
|
消息中间件 网络架构
面试官:RabbitMQ怎么实现消费的可靠投递
本文讲解RabbitMQ如何实现消费的可靠投递。
128 0
面试官:RabbitMQ怎么实现消费的可靠投递

热门文章

最新文章