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

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

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

时通讯消息简介



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


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


折叠处理技术

"消息队列"是 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,源码搭建大概需要多少钱?

社交类IM即时通讯软件的开发费用是一个动态变化的过程,没有固定的价格。费用取决于所需功能的复杂程度和开发的工作量。根据即时通讯的功能模块的不同,价格也会有所差异。一般常见的即时通讯功能包括单聊、群聊、红包、转账、朋友圈、语音、视频等,这些功能的即时通讯软件的价格较低,源码的价格通常在6000-100...

叫你搭建一套在线聊天软件,手把手教你搭建在线语聊程序

叫你搭建一套在线聊天软件,手把手教你搭建在线语聊程序

在线聊天软件彻底改变了我们的沟通方式,实现了实时对话并促进了跨平台的连接。在本文中,我们将探讨在线聊天软件背后的功能、优点和技术,强调其在当今数字环境中的重要性。了解在线聊天软件在线聊天软件是指通过互联网进行即时消息传递和交流的应用程序或平台。这些软件解决方案使个人、团体和组织能够有效地进行实时对话...

即时通讯App开发:从0到1的全过程

即时通讯App开发:从0到1的全过程

在数字化时代,即时通讯已经成为人们生活中不可或缺的一部分。如果你想进入这个领域并开发属于自己的即时通讯应用程序,本文将为你提供从0到1的全过程指南。1. 设想和市场研究在着手开发之前,你需要明确你的应用程序的核心特点和目标用户群体。通过详尽的市场研究,你可以了解竞争对手的产品,并找出差距和机会。2....

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

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

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

社交即时通讯软件app如何开发

社交即时通讯软件app如何开发

社交伴随人的 一生,如果没有社交,不跟别人接触往来,我们的身心健康会受到极大的影响。社交的方式随着互联网的发展也发生了极大的改变,过去的社交集中在现实生活中,人们需要一起面对面交谈交往。现在的社交除了现实生活,还可以通过移动互联网来解决。尤其是移动端和智能手机的普及给我们的生活带来了翻天覆地的变化,...

制作开发共享屏幕APP让会议更方便

制作开发共享屏幕APP让会议更方便

有很多东西正在悄悄变化,企业办公的方式也出现新的模式。共享屏幕APP制作开发主要为企业移动会议服务,不仅能提供高分辨率的画质,还会保障会议的安全,所有内容都是进行加密,不会轻易泄露。制作开发共享屏幕APP让会议更方便--广州app开发制作开发共享屏幕APP功能特色介绍1.   ...

发表评论

访客

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