消息队列概述|学习笔记

简介: 快速学习消息队列概述

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频消息队列概述】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/660/detail/11043


消息队列概述

 

内容介绍:

一、消息队列中通信的方式

二、消息队列的特点

三、在 ubuntu12.04 中消息队列限制值

 

一、消息队列中通信的方式

消息队列是进程中另一种通信方式,消息队列是消息的链表,存放在内存中,由内核维护。

它并不存放在文件系统当中,它不是文件,与是文件的有名管道和无名管道不同。

链表中有多个节点,每个节点有不同的消息,有多个进程,一个进程往消息队列中放消息,添加节点,另外一个进程可以从消息队列中取节点下来,读取消息,一旦消息的节点被读取出来之后,这个节点就能释放。

即有进程往上放消息,有的进程往下取取消息,就实现了进程间的通信

 

二、消息队列的特点

1、消息队列中的消息是有类型的

2、消息队列中的消息是有格式的。(有名管道无名管道中的消息是没有类型的,通信需要双方约定好)

3、消息队列可以实现消息的随机查询。消息不一定要以先进先出的次序读取,编程时可以按消息的类型读取。

4、消息队列允许一个或多个进程向它写入或者读取消息。

5、与无名管道、命名管道一样,从消息队列中读出消息,消息队列中对应的数据都会被删除。

6、每个消息队列都有消息队列标识符,消息队列的标识符在整个系统中是唯一的。(类似于进程号)

7、一旦打开了一个消息队列,只有内核重启或人工删除消息队列时,该消息队列才会被删除。若不人工删除消息队列,消息队列会一直存在于系统中。

 

三、在 ubuntu12.04 中消息队列限制值如下

1、每个消息内容最多为8K字节

2、每个消息队列容量最多为16K字节(内核中可以创建多个消息队列)

3、系统中消息队列个数最多为1609个

4、系统中消息个数最多为16384个

SystemV 提供的 IPC 通信机制需要一个 key 值,通过 key 值就可在系统内获得一个唯一的消息队列标识符。

key 值可以是人为指定的,也可以通过 ftok 函数获得。

消息队列标识符是打开消息队列之后创建的,相当于一个文件描述符,用来代表文件,消息队列标识符用来代表消息队列,是打开消息队列后获得的消息队列号。消息队列不是文件因此没有路径,相关的两个操作进程通过key值保证打开的是同一操作队列,即一个操作进程通过key值创建一个操作阵列,另一个key值相同的操作阵列就能打开,相当于命名管道中的路径,但不是路径。

注意人为命名key值是比较危险的,避免与其它操作阵列 key 值相同而冲突。

而不相关进程通过 ftok 函数来获取有效 key 值,当 key 值相同,就能保证操作的消息队列是一样的,而且能有效的与其它进程使用的 key 值不同,避免冲突。

相关文章
|
6月前
|
消息中间件 数据采集 Serverless
云消息队列 RocketMQ 版-消息集成-概述
消息集成是助力企业数字化转型的全栈式消息与数据集成平台,简化流程,支持云上云下、跨区域集成。它提供低代码的事件流服务,具备数据源集成、数据清洗、Serverless自定义处理等功能,支持丰富的数据源和跨端连接。然而,使用时存在如单个任务数据限制、任务名称长度等约束。消息流入(Source)负责从各种数据源获取数据,消息流出(Sink)将数据分发到目标,数据处理(Transform)允许数据转换和分析,而任务(Task)则结合这些组件执行实际的集成操作。
253 3
|
6月前
|
消息中间件 存储 中间件
【SpringCloud Stream消息驱动、设计思想以及整合rabbitmq消息队列案例--学习笔记】
【SpringCloud Stream消息驱动、设计思想以及整合rabbitmq消息队列案例--学习笔记】
279 0
|
消息中间件 存储 运维
消息队列与消息中间件概述:消息中间件核心概念与技术选型
消息队列是一个存放消息的容器,消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能、削峰、降低系统耦合性。
590 12
|
消息中间件 监控 Cloud Native
带你读《企业级云原生白皮书项目实战》——4.1.4 消息队列Kafka版概述
带你读《企业级云原生白皮书项目实战》——4.1.4 消息队列Kafka版概述
319 1
|
消息中间件 Cloud Native 中间件
带你读《企业级云原生白皮书项目实战》——4.1.1 消息队列RocketMQ版概述
带你读《企业级云原生白皮书项目实战》——4.1.1 消息队列RocketMQ版概述
221 0
|
消息中间件 监控 Java
手把手系列:消息队列 MNS 实操讲|学习笔记
快速学习手把手系列:消息队列 MNS 实操讲
689 0
手把手系列:消息队列 MNS 实操讲|学习笔记
|
消息中间件 运维 RocketMQ
消息队列 MNS 简史|学习笔记
快速学习消息队列 MNS 简史
403 0
消息队列 MNS 简史|学习笔记
|
消息中间件 前端开发 中间件
消息队列概述
消息队列概述
213 0
消息队列概述
|
消息中间件 移动开发 大数据
阿里云消息队列产品选型| 学习笔记
快速学习阿里云消息队列产品选型
588 0
阿里云消息队列产品选型| 学习笔记
|
消息中间件 存储 弹性计算
消息队列 kafka 销售指南| 学习笔记
快速学习消息队列 kafka 销售指南
消息队列 kafka 销售指南| 学习笔记