我们在两台Linux服务器上运行两个Python程序。现在我们想在这些Python程序之间发送消息。到目前为止,最好的想法是创建一个TCP / IP服务器和客户端架构,但这似乎是一种非常复杂的方法。这是做这种事情的最佳做法吗?
答案 0 :(得分:6)
我喜欢zeromq用于简单的消息传递,它非常轻巧,快速......非常灵活。根据您的具体情况,使用AMQP消息传递并不是一个坏主意,我发现kombu是一个非常好的pythonic库。您还可以使用xmlrpclib或使用bottle或flask设置简单的REST API。每个选项都有它的位置,所以我会调查你所有的选择。
答案 1 :(得分:3)
这实际上取决于您想要的消息类型以及两个进程的角色。如果它是正确的“客户端/服务器”,我可能会创建一个SimpleHTTPServer
,然后使用HTTP在两者之间进行通信。您还可以使用XMLRPCLib和客户端在它们之间进行通信。使用您自己的自定义协议手动创建TCP服务器对我来说听起来不错。您还可以考虑使用消息队列系统在它们之间进行通信。
答案 2 :(得分:0)
你可以拥有mulitprocessing.managers。正如doc所说:“管理器对象控制管理共享对象的服务器进程。其他进程可以使用代理访问共享对象。”
在您的情况下,您可以创建一个控制其他进程的主进程,每个进程都会调用master来获取数据。