BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Netflix为Java引入了响应式扩展

| 作者 Jonathan Allen 关注 549 他的粉丝 ,译者 姚琪琳 关注 0 他的粉丝 发布于 2013年3月2日. 估计阅读时间: 2 分钟 | 都知道硅谷人工智能做的好,你知道 硅谷的运维技术 也值得参考吗?QCon上海带你探索其中的奥义

Netflix为MS Open Tech的响应式扩展(Reactive Extensions)提供了Java实现并将之开源。但若说RxJava只是针对Java的,就会产生误导。它被设计为亦可用于其他JVM语言。“目前支持的语言(除了Java本身外)包括Groovy、Clojure、Scala和JRuby。”

Netflix创建了RxJava来简化服务器端并发。他们的目标是允许客户端触发单个可在服务器并行执行的“重”客户端请求。Ben Christensen和Jafar Husain解释道:

服务器端并发可以有效降低网络通信量。如果不能在服务器并发执行,那么单个“重”客户端请求可能不如多个“轻”请求,因为一个设备上的每个网络请求可以天然地和其他网络请求并行执行。如果服务器端执行的某个崩溃的“重”请求没有达到并行执行的要求,那么即使算上节省的网络传输时间,也可能会慢于多个“轻”请求。

根据Ben和Jafar所说,函数式响应要优于Future和回调函数,因为“函数式响应提供了一系列能够对Observable进行过滤、选择、转换、联合和组合的操作符,可以进行高效地执行和组合。”

通过让服务层API中的所有方法返回Observable,开发者可以与这些方法的实现隔离开来。这些方法可以在今天异步调用,也可以在明天同步返回。服务方法还可以自由选择阻塞和非阻塞I/O,前者可在资源受限时使用。

RxJava支持“Java 5(以支持Android)和更高版本,最终目标是基于支持Lambda的Java 8进行构建。”与原始Rx一样,Netflix的RxJava也是基于Apache License。你可以在github上下载RxJava

查看英文原文:Netflix Brings Reactive Extensions to Java

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT