如何在Java springboot微服务中非常有效地处理零碎的请求?

时间:2019-06-15 02:58:53

标签: java spring-boot microservices

我正在为其中一个客户端开发springboot微服务...

客户端请求正文包含{Group : A, SomeProp: ABC}

从服务器端:  在服务器中,每个组都有映射。例如:A组为1,2,3,4,B组为3,4,5,6,7,8,依此类推。现在服务器应该将请求拆分为

-> 1,ABC

-> 2,ABC

-> 3,ABC 等等.... 现在,所有分段的请求都应并行处理,并通过acqtivemq发送响应。 关键是,一个请求将在服务器端分解为多个请求,并且需要异步处理它们。 当前,我正在使用线程池进行管理。 痛苦的是,在高负载/更多请求期间,延迟时间变得非常高,而且进程使用率也逐渐增加。

如何在springboot微服务中有效地解决这种用例?

1 个答案:

答案 0 :(得分:0)

对于这样的事情,我认为根据自己的喜好配置Spring Boot而不依赖于默认值很重要。

  1. 您应该配置server.tomcat.max-threads,以使其符合您的喜好。默认值是200,如果我没记错的话,最大值是10000
  2. 您应使用completableFutures保持ExecutorPool不变,并正确配置池的大小。
  3. 可能会增加JVM堆大小。
  4. 相应地横向扩展您的应用。 (这会很有帮助)

从Spring Boot的角度来看,这些实际上是仅有的四件事。