我正在使用 gatsby 创建一个新项目
gatsby new YourProjectName2 https://github.com/Vagr9K/gatsby-advanced-starter
并得到一个错误:
info Creating new site from git:
https://github.com/Vagr9K/gatsby-advanced-starter.git
Cloning into 'YourProjectName2'...
remote: Enumerating objects: 420, done.
remote: Counting objects: 100% (420/420), done.
remote: Compressing objects: 100% (373/373), done.
remote: Total 420 (delta 44), reused 268 (delta 22), pack-reused 0
Receiving objects: 100% (420/420), 7.74 MiB | 11.79 MiB/s, done.
success Created starter directory layout
info Installing packages...
npm ERR! code EUNSUPPORTEDPROTOCOL
npm ERR! Unsupported URL Type "workspace:": workspace:*
npm ERR! A complete log …Run Code Online (Sandbox Code Playgroud) 我试图了解什么时候我们会使用像 webflux 这样的反应式堆栈框架。我读过的文章似乎表明,当我们有许多阻塞调用时,我们将从反应式方法中受益。例如,如果我们有一个 Webhook 服务,需要调用客户端服务器来更新信息。
但我也在这里阅读https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html
评估应用程序的一个简单方法是检查其依赖性。如果您要使用阻塞持久性 API(JPA、JDBC)或网络 API,那么 Spring MVC 至少是通用架构的最佳选择。使用 Reactor 和 RxJava 在单独的线程上执行阻塞调用在技术上是可行的,但您不会充分利用非阻塞 Web 堆栈。
这似乎表明恰恰相反。我读到,如果你可以流式传输信息,反应式会更有用。例如,如果您有一个前端要求一个列表和一个反应源,它可以在信息可用时为您提供信息,而不是在信息完成后仅提供全部信息。
那么问题是我们什么时候应该在后端使用响应式?当我们有很多阻塞调用时我们应该使用它吗?例如,对客户端的 HTTP 调用我们需要等待响应。或者这到底是错误的用例?
我知道还有其他考虑因素,例如代码的复杂性。我知道反应式方法更难实现,但我在这里只是询问性能和可扩展性。