当前位置:首页 > 搭建教程 > 正文内容

即时通讯开发之消息队列Message queue如何保证消息不丢?

im源码2年前 (2024-01-09)搭建教程564

时通讯消息简介



"消息"是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。


消息被发送到队列中。"消息队列"是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。


折叠处理技术

"消息队列"是 Microsoft 的消息处理技术,它在任何安装 Microsoft Windows 的计算机组合中,为任何应用程序提供消息处理和消息队列功能,无论这些计算机是否在同一个网络上或者是否同时联机。


"消息队列网络"是能够相互间来回发送消息的任何一组计算机。网络中的不同计算机在确保消息顺利处理的过程中扮演不同的角色。它们中有些提供路由信息以确定如何发送消息,有些保存整个网络的重要信息,而有些只是发送和接收消息。


"消息队列"安装期间,管理员确定哪些服务器可以互相通信,并设置特定服务器的特殊角色。构成此"消息队列"网络的计算机称为"站点",它们之间通过"站点链接"相互连接。每个站点链接都有一个关联的"开销",它由管理员确定,指示了经过此站点链接传递消息的频率。


折叠进程通信

消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号能够传送的信息量有限,后来虽然POSIX 1003.1b在信号的实时性方面作了拓广,使得信号在传递信息量方面有了相当程度的改进,但是信号这种通信方式更像"即时"的通信方式,它要求接受信号的进程在某个时间范围内对信号做出反应,因此该信号最多在接受信号进程的生命周期内才有意义,信号所传递的信息是接近于随进程持续的概念(process-persistent);管道及有名管道则是典型的随进程持续IPC,并且,只能传送无格式的字节流无疑会给应用程序开发带来不便,另外,它的缓冲区大小也受到限制。


消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息。消息队列是随内核持续的。


目前主要有两种类型的消息队列:POSIX消息队列以及系统V消息队列,系统V消息队列目前被大量使用。考虑到程序的可移植性,新开发的应用程序应尽量使用POSIX消息队列。


系统V消息队列是随内核持续的,只有在内核重起或者显示删除一个消息队列时,该消息队列才会真正被删除。因此系统中记录消息队列的数据结构(struct ipc_ids msg_ids)位于内核中,系统中的所有消息队列都可以在结构msg_ids中找到访问入口。 消息队列就是一个消息的链表。每个消息队列都有一个队列头,用结构struct msg_queue来描述。队列头中包含了该消息队列的大量信息,包括消息队列键值、用户ID、组ID、消息队列中消息数目等等,甚至记录了最近对消息队列读写进程的ID。读者可以访问这些信息,也可以设置其中的某些信息。


扫描二维码推送至手机访问。

版权声明:本文由创想互联IM聊天系统发布,如需转载请注明出处。

本文链接:https://im.fofo.club/blog/post/44.html

分享给朋友:

“即时通讯开发之消息队列Message queue如何保证消息不丢?” 的相关文章

IM即时通讯聊天软件交友朋友圈软件app定制开发

IM即时通讯聊天软件交友朋友圈软件app定制开发

随着社交网络的普及,即时通讯成为人们日常生活中非常重要的一部分。因此,即时通讯APP的开发也成为了一个非常热门的领域。本篇文章将会围绕即时通讯APP的开发流程进行阐述。需求分析首先,需要确定即时通讯APP的目标用户、功能需求、界面设计、技术方案等。在确定这些方面的要求后,才能进行下一步的设计和开发工...

即时通讯为什么要tcp加速产品tcp动态加速解决方案!

即时通讯为什么要tcp加速产品tcp动态加速解决方案!

需求和现状行业需求近年来,随着互联网在全球的快速发展和普及,网民数量的增加,生活中各方面对互联网依赖的增强,带来互联网访问量的爆发性增长。 并且随着web页面内容元素越来越丰富,对交互延时的要求, 给服务端的并发能力和处理能力提出了新的要求。 横向上可以增加机器来提高web服务的可用性和解决并发量的...

uniapp 即时通讯开发流程详解!

uniapp 即时通讯开发流程详解!

今天我将为您详细介绍UniApp开发中的即时通讯流程。本文将向您展示如何在UniApp中实现即时通讯功能,为您的应用程序增添交互性和实时性。1. 准备工作在开始开发之前,确保您已完成以下准备工作:确保您已经安装好UniApp开发环境,并熟悉UniApp的基本用法。确定您的应用需要哪些即时通讯功能,如...

如何信息共享的即时通讯系统及方法理论?

如何信息共享的即时通讯系统及方法理论?

1、 一种实现用户信息共享的即时通讯系统, 包括多个客户端及至少一个通讯服务器, 所 述多个客户端连接所述通讯服务器, 其特征在于, 所述实现用户信息共享的即时通讯系统还 包括:至少一个全局服务器; 控制服务器; 以及查询服务器, 所述多个客户端通过所述通讯服务器分别与所述查询服务器及所述全局服 务...

怎么开发一个即时通讯的app?

怎么开发一个即时通讯的app?

开发即时通讯app流程从app开发前,中,后期详细给您讲解下:  一、App开发前期  1、明确app开发需求在明确需要开发一个app前,首先要问自己,为什么要做一个app,手机app需要什么系统版本,app是给谁使用的,面向的用户是哪些群体等。要对开发app行业进行了解,分析app开发的可行性。 ...

企业即时通讯APP开发,手机聊天软件开发

企业即时通讯APP开发,手机聊天软件开发

即时通讯软件的开发,需要掌握以下几个方面的技:1. 实时通讯协议实时通讯协议是实现即时通讯的核心技术之一,常见的有XMPP和MQTT协议。XMPP协议主要用于文本、语音、视频等多种类型消息传输;而MQTT协议则主要用于物联网设数据的传输。开发者需要熟悉基于以上协议的开发方法。2. 数据库技术即时通讯...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。