如何看待Spring 5引入函数式编程思想以及Reactor
1 回答
慕容708150
TA贡献1831条经验 获得超4个赞
感觉就是将Http Service 抽象为了 Function<Request ,
Response<Publisher<T>>>, Publisher就是Reactive
中常说的Observable或Stream,这里又叫Publisher (Flux&Mono),Publisher负责了异步操作
对其架构进行猜测:前方为传统的accept线程池,分发请求,运行route
functions,组合publishers
返回结果;后方为reactive的线程池(为RP提供异步支持),对于简单的操作直接返回Response<T>,不用后方的reactive线程;而对与DAO操作等耗时操作(返回Response<Publisher<T>>),则被异步化了
所以最大的变化是引入了Reactive
Programming,(并且Rx系的库API很Functional),前面route的DSL和SpringMVC的Mapping没多大变化(顶多就是个monoid
append) ;至于Reactive
Programming将DAO操作(包括RPC调用等)异步化,比自己去对Future做combination要高一级,不会出大问题(并且Publisher是个Monad,使用得当不会发生Callback
Hell)。
- 1 回答
- 0 关注
- 992 浏览
添加回答
举报
0/150
提交
取消