我正在构建一个Java Spring Boot(微)服务,它基本上只有一个REST端点来检索某些资源的数据。要做到这一点,我需要从每个传入的请求中检索大约3-5个外部资源的信息(缓存和数据的预检索不是一个选项,因为缓存在统计上没有帮助,我不能存储我的服务器上的数据以任何方式)。
所以基本上每个传入的请求我需要生成3-5个外部服务调用,当然我希望并行/同时进行。这是一个非常轻量级的服务,因为它主要等待I / O响应。
这样做的最佳做法是什么?
如果我需要使用某种线程池,这意味着如果我需要支持200个并行请求,那么我需要600-1000个线程来处理传出请求,这将成为一个非常繁重的服务,只是等待I / O.
(为了比较,使用Node.js这很简单,因为我每个都使用Promise.all(...)
,并且我获得了很好的并发性,但我希望了解如何使用Java Sprint-Boot实现相同的功能)
答案 0 :(得分:0)
您可以使用Spring 5中添加的新的响应式功能。 您可以在最新的Spring Boot版本中使用它。