我曾考虑在生产环境中使用PyRo作为后端。所以我想问一下,
是否支持群集?即如果一个PyRo后端失败,它可以回到使用另一个吗?如果名称服务器失败怎么办?
是否已在某些大型生产系统中采用此目的?
答案 0 :(得分:2)
Pyro对故障转移方案的支持有限。关键设计原则之一是保持简单。这意味着如果服务器出现故障,有一种方法可以自动将客户端重新连接到服务器,但其他方法并不多。如果服务器出现故障,您必须自己恢复。 Pyro主要提供面向对象的网络通信抽象,处理服务器(和客户端)的机制需要来自其他地方。
这也适用于名称服务器。如果它发生故障,您将负责以某种方式检测并从中恢复。如果您不需要逻辑名称,可以使用Pyro而不使用自己的名称服务器。
名称服务器可以使用持久存储,以便在数据失效时不会丢失数据。提供的数据存储不是为多个名称服务器同时并发使用而设计的。如果需要,您可能必须自己构建一个容错的存储后端(storageprovider是可插拔的)。
如果故障转移(和水平扩展)是主要问题,您可能希望专注于无状态服务器设计。但这不是Pyro明确提供或强制执行的内容。
也许以上内容足以满足您的申请?如果没有,您将不得不自己或使用其他工具添加进一步的容错。
我无法回答你的第二个问题。我不知道你认为什么是大型生产系统'我自己并不知道Pyro的当前用户如何或在多大程度上使用该库。