两个Python程序之间的进程间消息传递

两个Python程序之间的进程间消息传递,python,linux,python-3.x,Python,Linux,Python 3.x,我们有两个Python程序在两台linux服务器上运行。现在我们要在这些Python程序之间发送消息。到目前为止,最好的想法是创建一个TCP/IP服务器和客户端架构,但这似乎是一个非常复杂的方法。这真的是做这种事情的最佳实践吗 这实际上取决于您想要的消息类型以及两个进程的角色。如果它是正确的“客户机/服务器”,我可能会创建一个SimpleHTTPServer,然后使用HTTP在两者之间进行通信。您还可以使用XMLRPCLib和客户端在它们之间进行对话。用自己的自定义协议手动创建TCP服务器对我来

我们有两个Python程序在两台linux服务器上运行。现在我们要在这些Python程序之间发送消息。到目前为止,最好的想法是创建一个TCP/IP服务器和客户端架构,但这似乎是一个非常复杂的方法。这真的是做这种事情的最佳实践吗

这实际上取决于您想要的消息类型以及两个进程的角色。如果它是正确的“客户机/服务器”,我可能会创建一个
SimpleHTTPServer
,然后使用HTTP在两者之间进行通信。您还可以使用XMLRPCLib和客户端在它们之间进行对话。用自己的自定义协议手动创建TCP服务器对我来说是个坏主意。您也可以考虑使用消息队列系统来在它们之间进行通信。正如doc所说:“一个manager对象控制一个管理共享对象的服务器进程。其他进程可以使用代理访问共享对象。”


在您的情况下,您可以创建一个主进程来控制其他进程,这些进程中的每个进程都会调用主进程来获取数据。

我喜欢简单的消息传递,它非常轻量级和快速……也非常灵活。根据您的具体情况,使用AMQP消息传递也不是一个坏主意,我发现这是一个非常好的Python库。您还可以使用或设置一个简单的RESTAPI。每个选项都有它的位置,所以我会调查您所有的选项。

您需要在这些程序之间发送什么类型的消息?这些服务器的角色是什么:服务器是作为对等服务器运行还是有主/从设置?您需要实现什么样的延迟?此外,您是否需要确保所有消息都已到达,或者如果在途中可能丢失了一些数据,是否正常?其主从设置。我需要做的是,主服务器在创建一个表后向所有从服务器发送消息。从服务器收到主服务器的消息后,从服务器将从主服务器的表中选择行并执行一些操作。现在奴隶们将向主人发送信息,告诉他事情已经完成了。所以这里基本上我只需要像“done=True”这样的消息来互相发送。那么实际上这里涉及到两个或更多的服务器?您是否也在使用某些特定的数据库?如果是这样,那么为什么要用Python在服务器之间进行通信?您会知道ZeroMQ是否在Python 3上工作吗?我检查了Python API,代码是Python 2。