在我的 Web 应用程序中,我有几个服务器模块通过 RESTful 服务响应客户端模块。
让我在这里给出一个用例。假设我正在构建一个社交网络,其中服务器模块的实例负责管理不同用户的推文。
这些服务器中的每一个都处理对不同数据集的请求。例如,Server1 将为用户 U1、U2 和 U3 的推文提供服务,Server2 为用户 U4 和 U5 提供推文,Server3 为用户 U6、U7 和 U8 提供推文。这些服务器的实现是相同的,只是它们处理的用户数据不同。此配置甚至可能在运行时更改,即处理特定用户推文数据的责任可以从一台服务器更改到另一台服务器。
现在假设客户端模块需要用户 U3 的数据。它应如何确定(在运行时)它必须联系哪个服务器。
基本上,实现这种动态服务注册和发现的各种方法是什么?这是一个实时应用程序,希望通过客户端模块缓存服务发现结果,以保存网络跃点以在每个请求上进行服务发现。
是否有一些现有的开源解决方案可以帮助我提供此功能,或者我应该继续自己实现它吗?