Rest 如何使用多个服务器实现长轮询

Rest 如何使用多个服务器实现长轮询,rest,microservices,long-polling,service-discovery,Rest,Microservices,Long Polling,Service Discovery,我们有一个在多台服务器上运行的服务。客户端连接到这些服务器中的任何一个以等待某个事件。客户端和服务器之间的连接采用长轮询方式。这意味着服务器在事件发生之前不会响应。客户端将保持连接打开 例如,我们有服务器:s1、s2、s3。我们有客户机c1,它目前正在连接到s3 现在的问题是,事件可能会在不同的服务器上触发。例如,有人连接到s1并触发一些事件。如果该事件与c1相关,s1如何告诉s3该事件已准备就绪并且应立即响应c1?这听起来像是消息队列的一个很好的用例。你考虑过这个吗?有许多好的消息队列提供程序

我们有一个在多台服务器上运行的服务。客户端连接到这些服务器中的任何一个以等待某个事件。客户端和服务器之间的连接采用长轮询方式。这意味着服务器在事件发生之前不会响应。客户端将保持连接打开

例如,我们有服务器:s1、s2、s3。我们有客户机c1,它目前正在连接到s3


现在的问题是,事件可能会在不同的服务器上触发。例如,有人连接到s1并触发一些事件。如果该事件与c1相关,s1如何告诉s3该事件已准备就绪并且应立即响应c1?

这听起来像是消息队列的一个很好的用例。你考虑过这个吗?有许多好的消息队列提供程序,包括ActiveMQ、RabbitMQ、Redis(严格来说不是MQ)和许多其他()提供程序。好的建议。所以每台服务器都需要订阅相同的主题并处理与当前服务器无关的消息?这看起来是一个很大的浪费。@jiaguo,是的,这是浪费,除此之外,我们需要将该服务的每个实例定义为单个“消费者群体”(用卡夫卡术语)。看来这将是一个维护问题。