前言
????新版本的Reactor和Rx都實(shí)現(xiàn)了Reactive-Stream的接口規(guī)范淹魄,除了各自的API有所不同云芦,框架設(shè)計(jì)思路都是以Publish和Subscribe為核心,所以模型都是一樣的察蹲,其余的就是對(duì)開發(fā)者的支持济锄。網(wǎng)上也有很多對(duì)比,也考慮了很久要不要寫這么一篇文章餐抢,還是決定匯總那些優(yōu)秀的现使,做一個(gè)小總結(jié)。
框架簡(jiǎn)介
- Reactor:Reactor是Spring研發(fā)出來的一個(gè)響應(yīng)式編程框架旷痕,背靠Spring爸爸碳锈。
- RxJava:RxJava是由開源社區(qū)運(yùn)作的一款流行響應(yīng)式編程框架。
選擇建議
- Reactor
- 后端開發(fā)
- Spring系列(reactor)
- 基于Nio開發(fā)網(wǎng)關(guān)
- RxJava
- Android前端開發(fā)
- 基于Nio開發(fā)網(wǎng)關(guān)
背景對(duì)比
社區(qū)維護(hù) | Github Stars | 多語言 | Http客戶端支持 | |
---|---|---|---|---|
Reactor | Spring | 3.1K | Java | Reactor-Netty |
RxJava | ReactiveX | 43K | RxJava欺抗、RxJS售碳、RxGO(一堆) | RxNetty |
開發(fā)人員友好對(duì)比
Api | Type-Safety | Checked Exceptions | Testing | Debugging | Spring Support | Android Support | Maturity | Score | |
---|---|---|---|---|---|---|---|---|---|
Reactor | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 4 |
RxJava | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 4 |
功能對(duì)比(深刻的意識(shí)到我只是一個(gè)搬運(yùn)工)
Conclusion
???? 這篇文章的內(nèi)容都是搬運(yùn)的,其實(shí)我個(gè)人覺得沒什么要對(duì)比的绞呈,簡(jiǎn)單來說贸人,Springer選Reactor,Androider選RxJava(沒得選)佃声。
???? 用或者不用也是一個(gè)大話題艺智,響應(yīng)式編程讓開發(fā)難度更大,對(duì)collaborator技術(shù)要求也高圾亏,至少要掌握用法吧十拣,對(duì)排查問題也沒那么方便,skywalking也沒法跟蹤TraceId召嘶,這些都是問題父晶,但是在某些場(chǎng)景下,使用會(huì)很香哦弄跌。例如:IO