我在服务器(tomcat)中部署了基于休息的应用程序, 每个请求来到服务器,它需要1秒的时间来服务,现在我有一个问题,有时服务器收到更多的请求,然后它能够服务使服务器无响应。现在我在想是否可以将请求存储在队列中,以便服务器可以提取请求并提供该请求并处理选择时间问题。
现在我在想Kafka是否可以为此提供帮助,如果是的话,我可以从哪里开始。
答案 0 :(得分:3)
您可以使用Kafka(或任何其他消息系统用于此前ActiveMQ,RabbitMQ等)。
当WebService收到请求时,在Kafka队列中添加请求(包含处理它所需的所有详细信息)(使用Kafka消息生成器details)
单独的服务(拥有Kafka消费者details)将从主题(队列)中读取并处理它。
如果需要在处理请求时向客户端发送消息,服务器可以使用WebSocket将信息推送到客户端(或者客户端可以轮询请求状态,但这需要请求状态端点并且将导致该端点上的负载)。
答案 1 :(得分:0)
Apache Kafka会对您的情况有所帮助。如果您使用Kafka经纪人,它将允许您面对请求的高峰。请求将存储在您提及的队列中,并由您的服务器以自己的速度处理。
当你使用tomcat时,我猜你用Java开发了你的服务器。 Apache Kafka提出了一个非常容易使用的Java API。