猿问

如何看待Spring 5引入函数式编程思想以及Reactor?

如何看待Spring 5引入函数式编程思想以及Reactor


茅侃侃
浏览 993回答 1
1回答

慕容708150

感觉就是将Http Service 抽象为了 Function<Request ,Response<Publisher<T>>>, Publisher就是Reactive中常说的Observable或Stream,这里又叫Publisher (Flux&Mono),Publisher负责了异步操作对其架构进行猜测:前方为传统的accept线程池,分发请求,运行routefunctions,组合publishers返回结果;后方为reactive的线程池(为RP提供异步支持),对于简单的操作直接返回Response<T>,不用后方的reactive线程;而对与DAO操作等耗时操作(返回Response<Publisher<T>>),则被异步化了所以最大的变化是引入了ReactiveProgramming,(并且Rx系的库API很Functional),前面route的DSL和SpringMVC的Mapping没多大变化(顶多就是个monoidappend) ;至于ReactiveProgramming将DAO操作(包括RPC调用等)异步化,比自己去对Future做combination要高一级,不会出大问题(并且Publisher是个Monad,使用得当不会发生CallbackHell)。
随时随地看视频慕课网APP
我要回答