2

在我的Web应用程序中,我有几个服务器模块通过RESTful服务响应客户端模块。动态RESTful服务注册和发现

让我在这里给出一个用例。假设我正在构建一个社交网络,其中服务器模块的实例负责管理不同用户的推文。

这些服务器都处理对不同数据集的请求。对于例如服务器1将为用户U1,U2和U3提供推文,为用户U4和U5提供服务器2,为用户U6和U8提供服务器3。这些服务器的实现将是相同的,只有他们处理的用户数据不同。这种配置甚至可能在运行时发生变化,即处理特定用户推文数据的责任可能会从一台服务器变为另一台服务器。

现在假设客户端模块需要用户U3的数据。它如何确定(在运行时)它必须联系哪个服务器。

基本上,实现这种动态服务注册和发现的各种方法有哪些?这是一个实时应用程序,需要通过客户端模块缓存服务发现结果,以便在每个请求上保存服务发现的联网跳数。

是否有一些现有的开源解决方案可以帮助我提供此功能,或者我应该继续并自行实施这些功能?

回答

0

这看起来像是一个反向代理的责任。

Varnish是一种情况。我建议你把它结合起来,因为它已经完成了你很大一部分的需求。