我可以在我的Rest WEBSERVICE中使用Kafka队列

时间:2017-04-07 12:31:10

标签: apache-kafka kafka-consumer-api

我在服务器(tomcat)中部署了基于休息的应用程序, 每个请求来到服务器,它需要1秒的时间来服务,现在我有一个问题,有时服务器收到更多的请求,然后它能够​​服务使服务器无响应。现在我在想是否可以将请求存储在队列中,以便服务器可以提取请求并提供该请求并处理选择时间问题。

现在我在想Kafka是否可以为此提供帮助,如果是的话,我可以从哪里开始。

2 个答案:

答案 0 :(得分:3)

您可以使用Kafka(或任何其他消息系统用于此前ActiveMQ,RabbitMQ等)。

当WebService收到请求时,在Kafka队列中添加请求(包含处理它所需的所有详细信息)(使用Kafka消息生成器details

单独的服务(拥有Kafka消费者details)将从主题(队列)中读取并处理它。

如果需要在处理请求时向客户端发送消息,服务器可以使用WebSocket将信息推送到客户端(或者客户端可以轮询请求状态,但这需要请求状态端点并且将导致该端点上的负载)。

答案 1 :(得分:0)

Apache Kafka会对您的情况有所帮助。如果您使用Kafka经纪人,它将允许您面对请求的高峰。请求将存储在您提及的队列中,并由您的服务器以自己的速度处理。

当你使用tomcat时,我猜你用Java开发了你的服务器。 Apache Kafka提出了一个非常容易使用的Java API。