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