响应式编程与 RxJava 全面解析
1. 响应式编程与 RxJava 的起源
在 2005 年 10 月 28 日,微软当时新上任的首席架构师 Ray Ozzie 给员工发了一封如今广为人知的备忘录,主题为 “互联网服务中断”。在这份备忘录中,Ray Ozzie 大致描绘了如今的世界景象,像微软、谷歌、脸书、亚马逊和网飞等企业都以网络作为服务的主要交付渠道。
从开发者的角度来看,Ozzie 作为大型企业的高管,发表了一番引人注目的言论:“复杂性会扼杀一切。它会耗尽开发者的精力,使产品难以规划、构建和测试,带来安全挑战,还会让终端用户和管理员感到沮丧。”
在 2005 年,大型 IT 企业热衷于像 SOAP、WS - * 和 XML 这类极其复杂的技术。那时,“微服务” 这个词尚未出现,也没有简单的技术能帮助开发者管理将复杂服务从较小的服务异步组合起来的复杂性,以及处理诸如故障、延迟、安全和效率等问题。
微软的云可编程性团队受到 Ozzie 备忘录的启发,开始专注于发明一种简单的编程模型,用于构建大规模异步且数据密集型的互联网服务架构。经过多次尝试,他们在 2007 年夏天左右,通过将同步集合的 Iterable/Iterator 接口对偶化,获得了一对用于表示异步事件流的接口,同时具备像 map、filter、scan、zip、groupBy 等熟悉的序列操作符,用于转换和组合异步数据流,于是 Rx 诞生了。在实现过程中,他们意识到需要管理并发和时间,为此扩展了 Java 执行器的概念,引入了虚拟时间和协作式重新调度。
经过两年紧张的开发,2009 年 11 月 18 日,Rx.NET 首次发布。随后,Rx 被移植到 Windows Ph
超级会员免费看
订阅专栏 解锁全文
1299

被折叠的 条评论
为什么被折叠?



