问题描述
我们有一个Spring Boot微服务,应该从旧/旧系统中获取一些数据。此微服务公开了外部现代REST API。有时,我们必须向旧系统发出7-10个请求,以获取单个API调用所需的所有数据。不幸的是,我们不能使用Reactor / WebClient ,而必须坚持使用 webservicetemplate 发出这些“旧版”调用。我们也不能使用Reactive Spring WebClient - Making a SOAP call
在Kubernetes中扩展此类微服务的最佳方法是什么?我们非常担心用于并行 webservicetemplate 调用的线程池将很快耗尽,但是我不确定基于活动线程数创建和公开自定义指标/线程池大小是个好主意。
任何建议都会有所帮助。
解决方法
-
确保已删除指标。您将要注意
threadpool_size
指标。请参阅您的k8s / prometheus发行文档,以获取适合您的prometheus服务发现。 -
根据Prometheus指标编写水平容器自动缩放器(HPA):
- 设置Prometheus-Adapter并遵循HPA演练。
- 或者按照本指南https://github.com/stefanprodan/k8s-prom-hpa
根据您使用的k8s发行版,您可能有不同的方式来获取Prometheus和Prometheus发现: