首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpringDoc WebMvc与WebFlux

SpringDoc WebMvc与WebFlux
EN

Stack Overflow用户
提问于 2020-07-06 23:06:39
回答 1查看 663关注 0票数 0

我在rest中使用SpringDoc Open 3。现在我正在使用WebMvc版本。切换到WebFlux版本有什么好处吗?在客户端使用WebClient (或其他异步客户端)不是一回事吗,除非异步将发生在客户端?到头来,Rest方法可以在内部使用异步方法,但试图查看是否值得将公开的方法迁移到WebFlux。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-06 23:21:29

不,这是完全不同的事情。Spring在按请求执行线程模型中运行.您有100个并发请求=您有100个线程来处理这些请求。100个线程已经很多了,现在想象一下1k,10k,甚至100 k--在这个模型中完全不可能。

重点是,这些线程没有完成100%的工作时间。如果您调用一个数据库或其他服务,那么线程只是在等待响应,而不是执行它在这段时间可能做的工作。

这就是way流量的方式,您可以使用更少的线程,因为线程不是等待外部服务的响应,而是在这段时间内工作,这样就可以处理1k并发请求,而不会出现太多问题。

为什么每个人都不这么做:少用资源,更好的性能等等?首先,我认为最重要的是-这是难以置信的困难。程序流程并不像在同步编程中那么容易,调试真的很难,堆栈跟踪基本上是无用的,您需要非常小心不要阻塞所有的东西。第二,这种好处在某种程度上是值得的,大多数应用程序不需要处理成千上万的并发用户。在此阈值之前,不仅没有任何好处,而且在性能方面可能会更糟,同时在第一点提到的开发人员知识和经验上付出代价。第三,为了工作,您需要整个流程是异步的,否则您只需要阻止事件循环--调用外部服务,最重要的是调用数据库--为此您需要异步数据库驱动程序,而不是每个数据库都支持它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62765757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档