知识卡片
响应式解决的是可扩展性不是速度
内容
一个常见的误解是把响应式编程当作让单次请求变快的手段,实际上它解决的是完全不同的问题:用同样的计算资源能撑住更高的并发用户数,以及在下游服务变慢或不稳定时系统整体更容易保持可用。单次请求的响应时间不会因为改用响应式而缩短,甚至可能因为额外的异步调度开销略有增加;真正变化的是资源利用效率和高并发下的表现。同时这份好处不是免费的:响应式要求转换成事件驱动的思维方式,调试和排查问题也比同步阻塞代码困难得多,因为执行路径不再是一条能直接跟踪的调用栈。发散:这条边界判断很实用——判断一个服务该不该改成响应式,先问它是不是 I/O 密集型、是不是需要在有限资源下扛住高并发,而不是简单地因为”响应式更现代”就无脑重写,为了追求”更快”而引入响应式复杂度,很可能只是白白承担了调试成本却拿不到对应的收益。
参考来源
《Cloud Native Spring in Action》第8章《Reactive Spring: Resilience and scalability》