为Java选择反应式Web框架

时间:2018-09-19 13:38:14

标签: java web reactive-programming vert.x spring-webflux

  1. 对于选择正确的框架,我们的应用程序绝对是无状态的重要吗?我们不必担心同步,单线程模型等

  2. 我更喜欢一个我们编写“常规”服务层的模型。我的意思是服务并不了解Web框架,而是同步的。这种方法简化了这些服务的开发和测试。然后“控制器”层以异步方式调用这些服务。我想实现这样的体系结构还是对它有一些缺点,对吗?

  3. 我更喜欢Web框架具有一个控制器,该控制器向框架返回异步结果(例如,在akka-http中返回Futures或在Web Flux中返回Flux),而不是处理程序的Vertx方法,因为处理程序需要更多的代码行而且可读性较差。我对吗?我想念什么吗?

如果您认为我在2和3中是正确的-哪个框架可以这样工作?

如果您不同意2.和3.-我应该考虑哪些因素?

1 个答案:

答案 0 :(得分:1)

在使服务同步时,我不同意2。我认为您无法使某些部分同步,而其他部分则异步。当然,您可以这样做,但是,您将失去反应式编程的所有好处。如果代码的某些部分处于阻塞状态,另一部分处于非阻塞状态,则非阻塞部分也将被阻塞;) 切换到反应式编程需要不同的思维方式和东西,但是,如果您这样做了,那么测试异步服务就不那么困难了。我要说的是,如果您切换到反应式Web框架(web-flux),则最好使代码的每个部分都是异步的。