关于 SpringBoot 并发处理的问题

2023-09-13 08:14:10 +08:00
 hahahenimei

公司有个小程序,本应该是直接调用 B 服务的,但是现在是小程序调用 A 服务的接口,A 的接口中调用 B 服务中的接口获取返回值( A 服务主要是构造调用 B 服务用到的 token )。现在想重构这个 A 服务,想要提高并发处理的能力。有没有好的建议。

4352 次点击
所在节点    Java
30 条回复
a1274598858
2023-09-13 14:34:33 +08:00
@quan7u #19 我们都是真爱粉
miaotaizi
2023-09-13 14:40:34 +08:00
这个问题跟 SpringBoot 啥关系?
Huelse
2023-09-13 15:11:04 +08:00
一般 SpringBoot 优化都是很好的,最终压力都给在机器硬件性能、数据库性能和网络性能上。
lyxeno
2023-09-13 17:13:38 +08:00
先跑个 Profile,做个压测看看瓶颈在哪里?
hakr
2023-09-13 18:13:23 +08:00
@chaos93 #1 如果让 gpt 警察看到了并且艾特了站长你这个号就要废了-.-
zhaokun
2023-09-13 21:24:14 +08:00
没有目标的优化,以及现状是什么情况,你这问题问了让人不知道怎么回答
zhaokun
2023-09-13 21:25:25 +08:00
不提量级谈何优化
dayeye2006199
2023-09-14 06:49:18 +08:00
听着是个无状态服务,那不是拿个 serverless function 胡一胡,爱多少并发就多少并发么
fenglangjuxu
2023-09-14 10:15:50 +08:00
可以把 A 做成定时任务,先获取 token 存到 redis ,然后 b 服务从 redis 获取。如果 redis 没有获取到,实时再去获取一次。

当然不知道 这个 token 是不是可以提前获取,是不是需要 b 的一些参数。
left7410
2023-09-17 12:17:16 +08:00
A 服务获取 token 可以用定时器获取,,然后把 token 存 redis ,然后看 B 服务接口是否支持批量操作,支持的话可以使用线程池批量去调 B 服务,不支持可以增加个 redis 存储 B 服务返回的数据,A 服务使用定时器异步批量处理。核心思想就是拆异步,加缓存,再不行就上集群吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/973197

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX