基于线程池状态扩展 Spring Boot App
Scale SpringBoot App based on Thread Pool State
我们有一个 Spring 引导微服务,它应该从旧/遗留系统中获取一些数据。此微服务公开了外部现代 REST API。有时我们必须向遗留系统发出 7-10 个请求,以便获得我们需要的所有数据以进行单个 API 调用。不幸的是,我们不能使用 Reactor / WebClient 并且必须坚持使用 WebServiceTemplate 来发布那些“遗留问题” “电话。我们不能同时使用 Reactive Spring WebClient - Making a SOAP call
在 Kubernetes 中扩展此类微服务的最佳方式是什么?我们非常担心用于并行 WebServiceTemplate 调用的线程池会很快耗尽,但我不确定创建和公开自定义基于活动线程数/线程池大小的指标是个好主意。
任何建议都会有所帮助。
-
确保抓取指标。您将关注 threadpool_size
指标。请参阅您的 k8s/prometheus 发行版文档,让 prometheus 服务发现为您工作。
基于 Prometheus 指标编写水平 pod 自动缩放器 (HPA):
- 设置 Prometheus-Adapter 并遵循 HPA 演练。
- 或遵循本指南https://github.com/stefanprodan/k8s-prom-hpa
根据您使用的 k8s 发行版,您可能有不同的方法来获取 Prometheus 和 prometheus discovery:
我们有一个 Spring 引导微服务,它应该从旧/遗留系统中获取一些数据。此微服务公开了外部现代 REST API。有时我们必须向遗留系统发出 7-10 个请求,以便获得我们需要的所有数据以进行单个 API 调用。不幸的是,我们不能使用 Reactor / WebClient 并且必须坚持使用 WebServiceTemplate 来发布那些“遗留问题” “电话。我们不能同时使用 Reactive Spring WebClient - Making a SOAP call
在 Kubernetes 中扩展此类微服务的最佳方式是什么?我们非常担心用于并行 WebServiceTemplate 调用的线程池会很快耗尽,但我不确定创建和公开自定义基于活动线程数/线程池大小的指标是个好主意。
任何建议都会有所帮助。
确保抓取指标。您将关注
threadpool_size
指标。请参阅您的 k8s/prometheus 发行版文档,让 prometheus 服务发现为您工作。基于 Prometheus 指标编写水平 pod 自动缩放器 (HPA):
- 设置 Prometheus-Adapter 并遵循 HPA 演练。
- 或遵循本指南https://github.com/stefanprodan/k8s-prom-hpa
根据您使用的 k8s 发行版,您可能有不同的方法来获取 Prometheus 和 prometheus discovery: