前言
新版本的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
网友评论