我正在构建一个包含许多部分的小型系统,并且我希望使用消息服务在部分之间进行通信。
我读到了一些消息队列服务,如RabbitMQ和ZeroMQ,但我觉得它们太复杂了,感觉它是为分布式系统而生的。我的系统的所有部分都将用C++/Linux编写,并放在一个小的Raspberry Pi CPU上,所以我不需要像可伸缩的,跨平台的,其他语言的客户端这样的功能……
你们能给我一些关于适合我需求的服务或库的建议吗?
我希望将单个队列连接到多个队列管理器(至少2 qmgrs)。假设我使用qmgrA and qmgrB作为队列管理器,并且它连接到queueName。我将发布一条消息"Hello"到连接到qmgrA的queueName,以及另一条消息"World" on qmgrB。因此,假设queueName包含"Hello"和"World"。
问题是我如何同时收到这些信息?您能给我一个示例代码片段/片段,让我至少概述一下如何开始使用该设计进行编码。
备注:*我要求这样做是因为例如,qmgrA由于未知的原因被断开/关闭,至少qmgrB仍然处于活
我必须创建单个服务器进程A和多个客户端进程(Es)。所有用户都应该使用Linux消息队列进行数据传递。信息将向两个方向流动。同时,多个客户端进程(Es)也可能已注册到服务器进程A。
目前,我只使用一个命名消息队列,它由Server Process A创建和打开,并由客户端进程(Es)使用/打开(仅)。这适用于两个流程场景(即一个服务器进程A和一个客户机进程B),但不适用于多个客户端进程(Es)和一个服务器进程。
我在这里面临的问题是设计/逻辑。如何从其他客户端进程(Es)解除服务器进程A上的多路复用消息,以及从服务器进程A返回到相应的客户端进程,或者可能它可以发送回所有客户端进程(Es),但必
我在将队列作为参数传递给C++中的函数时遇到一些问题。我有一个定义为queue<int> example[100];的STL队列
我有一个定义为void calculateSum(queue<int> &example, int size){}的函数
我试图通过编写calculateSum(example, 100)将队列传递给此函数,但我一直收到错误消息[cquery] no matching function for call to 'minimumDistance'
我该怎么办?任何反馈都会很有帮助
我当时正在研究linux,偶然发现了这个ipcs命令。
从手册页:
ipcs - provide information on ipc facilities
ipc在手册页中没有解释,但它很可能代表进程间的通信。这从它所列出的信息的上下文中也是有意义的:共享内存段、消息队列和信号量数组。
我想知道,由于linux/unix中的所有内容都是一个“文件”,或者至少是一个类似文件的对象,那么ipcs中列出的元素中的“文件”在哪里呢?
为什么mkfifo创建的命名管道没有在ipcs中列出?据我所知,fifos是队列。mkfifo创建的命名管道与ipcmk创建的消息队列有何不同?