For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
随着移动互联网的不断发展,大多数的用户在访问网络的时候不单单是通过PC电脑端,同时对于移动端的网站访问频率也再提高,今天我们就一起来了解一下都有哪些方法来优化移动端的互联网访问,下面就开始今天的主要内容吧。
我应该使用响应式编程吗?
在设计响应式API时,先要问自己的问题是,你是否想要一个响应式API! 响应式api不可能适用于所有的一切。响应式编程有显而易见的缺点(目前较大的问题是调试,但框架和ide都正在积极解决此问题)。相反,当价值明显大于缺点时,你就选择响应式API吧。在作出这个判断时,有几个用于响应式编程的模式非常适合。
网络化
网络请求本质上就撇不开(相对)较大的延迟,而且等待这些响应返回通常是系统中很大的资源浪费。在非响应式应用程序中,那些等待中的请求通常会阻塞线程并消耗堆栈内存,空闲着等待响应到达。远程故障和超时通常没有得到系统地、明确地处理,因为提供的API不容易做到这一点。远程调用的负载通常是未知的、无边界的,导致堆内存耗尽。响应式编程与非阻塞IO相结合,解决了这类问题,因为它为你提供了一个清晰的和显式的API。
高并发操作
它也很适合用于协调高并发操作(如网络请求或可并行化cpu密集型计算)。响应式框架,虽然允许显式管理线程,但采用自动线程管理也很出色。像.flatmap()这样的操作符透明地并行化行为,扩大利用可用资源。
大规模可扩展应用
每个链接一个线程的servlet 模型已经为我们服务了很多年了。但是,随着微服务的出现,我们已经开始看到应用程序大规模地扩展(25、50甚至100个单个无状态应用程序的实例)来处理连接负载,即使CPU使用率处于空闲状态。选择非阻塞IO加响应式编程效果更佳,打破了链接与线程间的这种联系,使可用资源得到更有效的利用。很明显,这样的优势通常是惊人的。它常常需要在Tomcat上构建一个应用程序的更多实例,这些应用程序需要成百上千的线程来处理相同的负载,就像同一应用程序构建在拥有8个线程的Netty上一样。
作者:Ben Hale 、Paul Harris
译者 冬雨
来源:infoq
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。