我当时正在研究linux,偶然发现了这个ipcs命令。
从手册页:
ipcs - provide information on ipc facilities
ipc在手册页中没有解释,但它很可能代表进程间的通信。这从它所列出的信息的上下文中也是有意义的:共享内存段、消息队列和信号量数组。
我想知道,由于linux/unix中的所有内容都是一个“文件”,或者至少是一个类似文件的对象,那么ipcs中列出的元素中的“文件”在哪里呢?
为什么mkfifo创建的命名管道没有在ipcs中列出?据我所知,fifos是队列。mkfifo创建的命名管道与ipcmk创建的消息队列有何不同?
我正在构建一个包含许多部分的小型系统,并且我希望使用消息服务在部分之间进行通信。
我读到了一些消息队列服务,如RabbitMQ和ZeroMQ,但我觉得它们太复杂了,感觉它是为分布式系统而生的。我的系统的所有部分都将用C++/Linux编写,并放在一个小的Raspberry Pi CPU上,所以我不需要像可伸缩的,跨平台的,其他语言的客户端这样的功能……
你们能给我一些关于适合我需求的服务或库的建议吗?
我们已经在多个Azure中安装了SO磷。安装了pip、azure服务总线sdk,并使用下面的代码,我们可以在消息到达队列时使用它。
from azure.servicebus import QueueClient, Message # Create the QueueClient
queue_client = QueueClient.from_connection_string("<connectionstring>", "taskqueue") # Receive the message from the queue with queue_clie
我必须创建单个服务器进程A和多个客户端进程(Es)。所有用户都应该使用Linux消息队列进行数据传递。信息将向两个方向流动。同时,多个客户端进程(Es)也可能已注册到服务器进程A。
目前,我只使用一个命名消息队列,它由Server Process A创建和打开,并由客户端进程(Es)使用/打开(仅)。这适用于两个流程场景(即一个服务器进程A和一个客户机进程B),但不适用于多个客户端进程(Es)和一个服务器进程。
我在这里面临的问题是设计/逻辑。如何从其他客户端进程(Es)解除服务器进程A上的多路复用消息,以及从服务器进程A返回到相应的客户端进程,或者可能它可以发送回所有客户端进程(Es),但必