
现在有一套 alibaba cloud 全家桶的项目,基于 nacos 和 spring cloud loadbance 的。
目前观察到一个现象,某个服务存在 2 个实例,大部分请求都跑到了某个实例,且这个实例负载较高。 另外一个实例基本都在摸鱼。
从业务上讲,这个服务的调用并不频繁,但每次调用都需要花费一定的 cpu 内存和时间 去处理。
我感觉是调用频次太低导致默认的均衡规则没啥用,导致请求都转发到 服务实例列表中的第一个实例了。
1 lsk569937453 2023 年 6 月 20 日 那就把负载均衡调整为随机啊 |
2 hhjswf 2023 年 6 月 20 日 轮循呗,有可能你没配置对 |
3 imv2er 2023 年 6 月 20 日 同步的提高响应时间的权重 异步的。。。比较麻烦 可以用点投机取巧的办法 |
4 xuanbg 2023 年 6 月 20 日 我都是无脑平均分配 |
5 seasonsolt 2023 年 6 月 20 日 感觉你不需要 loadblance ,你需要 map-reduce ,以导出 100W 数据为例,那么按照实例数量 2 拆分成 2 个 50W 的任务并行处理,最后在文件层面 merge 成一个。 |
6 Pil0tXia 2023 年 6 月 20 日 感觉楼上的就是最好的解决方案了,但是从内存层面讲,一次性合并 4 个 25W 的文件对内存来说也不轻松,不过没有 JVM 里的对象了,可以少一半的内存占用(有没有一半也不知道)。如果内存还不够,可能得分批合并,然后在合并的时候把其它内存负载转移到别的 pod 上去。 还有优化的办法吗? |