前言
????新版本的Reactor和Rx都實現了Reactive-Stream的接口規范,除了各自的API有所不同,框架設計思路都是以Publish和Subscribe為核心,所以模型都是一樣的,其余的就是對開發者的支持。網上也有很多對比,也考慮了很久要不要寫這么一篇文章,還是決定匯總那些優秀的,做一個小總結。
框架簡介
- Reactor:Reactor是Spring研發出來的一個響應式編程框架,背靠Spring爸爸。
- RxJava:RxJava是由開源社區運作的一款流行響應式編程框架。
選擇建議
- Reactor
- 后端開發
- Spring系列(reactor)
- 基于Nio開發網關
- RxJava
- Android前端開發
- 基于Nio開發網關
背景對比
社區維護 | Github Stars | 多語言 | Http客戶端支持 | |
---|---|---|---|---|
Reactor | Spring | 3.1K | Java | Reactor-Netty |
RxJava | ReactiveX | 43K | RxJava、RxJS、RxGO(一堆) | RxNetty |
開發人員友好對比
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 |
功能對比(深刻的意識到我只是一個搬運工)
Conclusion
???? 這篇文章的內容都是搬運的,其實我個人覺得沒什么要對比的,簡單來說,Springer選Reactor,Androider選RxJava(沒得選)。
???? 用或者不用也是一個大話題,響應式編程讓開發難度更大,對collaborator技術要求也高,至少要掌握用法吧,對排查問題也沒那么方便,skywalking也沒法跟蹤TraceId,這些都是問題,但是在某些場景下,使用會很香哦。例如:IO