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

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

im源码1年前 (2024-01-09)搭建教程364

时通讯消息简介



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


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


折叠处理技术

"消息队列"是 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开发,手机聊天软件开发

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

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

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

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

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

安卓apk包没有上架的情况下,出现apk报毒该如何处理?

安卓apk包没有上架的情况下,出现apk报毒该如何处理?

这是很多app开发者都会遇到的问题,对于用户来说,如果应用出现报错、无法使用等情况,那么就会很影响体验;而对于开发者来说呢?否则可能会导致一些不必要的损失。公司开发的APP最近一直提示有风险软件、有病毒,在华为、OPPO等自带手机管家也报毒,经过几天的研究终于解决了,在腾讯和360检测都没什么问题了...

即时通讯app定制开发 提高用户体验和用户黏性

即时通讯app定制开发 提高用户体验和用户黏性

 即时通讯app定制开发是指根据客户的需求和要求,为其定制开发一款专属的即时通讯应用程序。这种定制开发可以满足客户的特定需求,  包括但不限于1.定制化界面设计:根据客户的品牌形象和用户群体,设计符合其需求的界面风格和交互方式。  2.定制化功能开发:根据客户的需求,开发符合其业务需求的功能模块,如...

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

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

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

发表评论

访客

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