当前位置:首页 > 搭建教程

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

im源码3年前 (2024-01-09)搭建教程849

时通讯消息简介



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


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


折叠处理技术

"消息队列"是 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即时通讯系统开发以及功能介绍

云信IM即时通讯系统开发以及功能介绍

功能介绍:新增 游客登录/一键注册。限制IP注册多少个号等等,具体联系客服看后台演示。支持文字、表情、图片、语音、单聊、群聊、在线离线、撤回、已读未读、红包、消息群发、消息转发、内嵌外链、敏感词等完备的IM功能。单聊:快速实现私信单聊,具备图片、发送语音、动态表情、发送小视频、红包等各种通信能力。群…

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

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

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

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

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

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

同屏共享APP 的开发需要什么功能?同屏共享APP的开发需要多少钱?

同屏共享APP 的开发需要什么功能?同屏共享APP的开发需要多少钱?

随着科技的发展,人们的技术也在进步,人们参加会议的时候会使用到一些屏幕共享软件,借此来提高整体的效率。屏幕共享APP的开发就是为了帮助人们在参加远程会以的时候把数据矢量化,让回放不成问题。屏幕共享APP开发的功能介绍:1、 远程控制:屏幕共享平台会提供给用户远程控制的功能,在白板上的内容可以进行实时…

今天来聊聊Android屏幕共享的解决方案

今天来聊聊Android屏幕共享的解决方案

屏幕共享是增强互动体验,提高沟通效率的重要功能。以下是一些实现Android屏幕共享的解决方案:1、使用视频通话功能:在Android中,可以使用视频通话功能实现屏幕共享。通过视频通话,可以将自己的屏幕内容以视频的方式分享给其他的观众,让沟通更加生动、直观。2、使用屏幕共享功能:Android中的屏…

开发即时通讯系统常见的短连接和长连接是什么意思?即时通讯源码

开发即时通讯系统常见的短连接和长连接是什么意思?即时通讯源码

那企业选即时通讯软件到底是SaaS好还是私有部署好呢?按照常规,应该详尽地列出两种类型的是利弊对比。例如SaaS运维省心省力,私有化本地部署以及后续升级需要投入人力物力。但是这些所谓的利弊是我们的选择标准吗?认为,更应该从企业自身的安全管控需求出发来进行选择。如果内部日常沟通的信息关系企业发展命脉,…

发表评论

访客

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