1 回答

TA貢獻1831條經(jīng)驗 獲得超4個贊
感覺就是將Http Service 抽象為了 Function<Request ,
Response<Publisher<T>>>, Publisher就是Reactive
中常說的Observable或Stream,這里又叫Publisher (Flux&Mono),Publisher負責(zé)了異步操作
對其架構(gòu)進行猜測:前方為傳統(tǒng)的accept線程池,分發(fā)請求,運行route
functions,組合publishers
返回結(jié)果;后方為reactive的線程池(為RP提供異步支持),對于簡單的操作直接返回Response<T>,不用后方的reactive線程;而對與DAO操作等耗時操作(返回Response<Publisher<T>>),則被異步化了
所以最大的變化是引入了Reactive
Programming,(并且Rx系的庫API很Functional),前面route的DSL和SpringMVC的Mapping沒多大變化(頂多就是個monoid
append) ;至于Reactive
Programming將DAO操作(包括RPC調(diào)用等)異步化,比自己去對Future做combination要高一級,不會出大問題(并且Publisher是個Monad,使用得當(dāng)不會發(fā)生Callback
Hell)。
- 1 回答
- 0 關(guān)注
- 1033 瀏覽
添加回答
舉報