0

我的设置如下:一个主程序(用 Python 编写)充当检索数据的主应用程序,将其保存到 SQLite DB(然后稍后进一步处理)。这些数据收集在其他程序中,在同一台机器上运行,称为slaves

请注意,一次始终只有一个从站运行,因此主站不需要同时从多个从站检索数据。但是,当一个从站关闭时,另一个从站可以开始向主站发送数据。

这个设置的一个重要特点是从站可以用任何编程语言编写,我对它们没有太多控制权。但是,我可以“插入”这些从属程序,以扩展它们的功能并将数据从该应用程序发送到主程序。

发送到主服务器的数据必须采用“正式”格式,例如键/值对列表等。这个要求有点灵活,它还取决于当前正在运行的从站。

现在我的问题是:如何在同一台机器上运行程序的实例之间实现通信?我考虑过web services,但它们似乎有点矫枉过正,因为它们都在同一台主机上运行。另一种选择是通过 sockets 进行基于 Json 的数据通信,但我对这种方法还没有太多经验,因此我无法判断它在这种情况下是否适合我的需求。

这两种方法只是我的第一个想法,我对任何好的解决方案持开放态度。

我认为有一种“最佳实践”方法来实现这样的设置,因为我肯定不是第一个有这种要求的人。

任何想法,甚至更好:实践经验,关于那个?
谢谢。

4

1 回答 1

1

进程之间没有跨平台的通信方式,但我认为没有理由不为此使用 tcp 套接字。

示例:mongod是 MongoDB 的守护进程,其他进程只是通过一个普通的 tcp 套接字与其通信(参见this)。

于 2013-04-20T14:40:52.660 回答