为了向您提供问题的背景,我正在考虑将Kafka作为微服务之间的服务间通信的渠道。我的大多数微服务都具有Web性质(Web服务器/ REST服务器/ SOAP服务器与现有端点通信)。
在某些时候我需要微服务之间的异步通道,所以我考虑将Kafka作为消息代理。
在我的场景中,一旦其工作完成,我就拥有了RESTfull微服务,它将消息推送到Kafka队列。然后另一个微服务,也就是具有小REST层的Web服务器(嵌入式tomcat)将使用这些消息。
考虑消息传递队列的原因是,即使我的接收微服务由于某种原因而关闭,我的所有传入消息都将被添加到队列中,并且数据流不会受到干扰。另一个原因是Kafka是持久队列。
通常,Kafka消费者是多线程的。
问题是,接收微服务是Web服务器,我担心在servlet容器管理环境中创建用户线程。它可能会奏效。但考虑到用户在Web应用程序中创建的线程很糟糕,我很困惑。那么在这种情况下你的方法是什么。
请建议。