博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
响应式编程
阅读量:6580 次
发布时间:2019-06-24

本文共 946 字,大约阅读时间需要 3 分钟。

近年来,响应式编程在开发者社区和客户中很受欢迎,由于其以声明的方式构建应用程序的能力,而不是强制,形成更加敏感和有弹性的应用。Spring 5 将反应系统纳入其核心框架的事实已经显示出向声明式编程的范式转变。

响应式编程管理数据生产者和消费者之间的异步数据流,它们需要以流畅的方式对数据进行响应。所以,响应式编程都是异步和事件驱动的流畅应用程序,需要少量的线程进行缩放。

响应式编程很难构建基于线程的架构,由于在基于共享可变状态、线程和锁的应用程序扩展过程中涉及到高度复杂性。

在响应式编程的上下文中,“在流中有数据时,所有事物都是流并以流畅方式行为。”

为什么是响应式编程

高层次的抽象与响应式编程导致了代码可读性的提高,因此开发人员可以主要关注定义业务逻辑的事件的相互依存性。

在高度并发的环境中,响应模式自然地适合于消息处理,这是一个常见的企业用例。

由于执行反压力的特性,响应式方法最适合控制生产者和消费者之间的流量,这将有助于避免内存不足。

对于一个或几个线程,IO绑定任务可以通过异步和非阻塞方式执行,而且不阻塞当前线程。

在高交互和实时应用程序或任何操作/事件时,都可能触发多个连接子系统的通知,在这种情况下响应式编程可以更有效的进行管理。

用于响应式编程实现的理想案例

•大量的交易处理服务,如银行部门。
•大型在线购物应用程序的通知服务,如亚马逊。
•股票价格同时变动的股票交易业务。

响应流 (Reactive Streams)

“响应流”定义一个 API 规范,其中包含一组最小的接口,这些接口公开了定义非阻塞反压力的数据流的操作和实体的方法。

随着反压力的引入,响应流允许用户控制来自出版商的数据交换速率。

响应流 API java.util.concurrent.flow 已正式成为 java 9 的一部分。

响应流主要用作互操作层。

Spring 5 提供的响应式编程

Spring-Web-Reactive 模块和 Spring MVC 都支持相同的 @Controller 编程,但 Spring-Web-Reactive 是在 Reactive 和非阻塞引擎上执行的。

转载于:https://blog.51cto.com/13687572/2094204

你可能感兴趣的文章
delphi webbrowser 经常用法演示样例
查看>>
iptables相关操作以及简单理解端口和服务之间关系
查看>>
Ubuntu上运行Blender,在控制台上查看运行结果
查看>>
怎么检查网站的死链接呢?
查看>>
scrapy爬虫框架实例一,爬取自己博客
查看>>
JAVA简单选择排序算法原理及实现
查看>>
Spring MVC实现Junit Case
查看>>
HttpClient通过Post方式发送Json数据
查看>>
React是UI的未来吗?
查看>>
中国人社部:2018年15个省(区、市)调整最低工资标准
查看>>
JS中的继承
查看>>
手把手教你通过Thrift 访问ApsaraDB for HBase
查看>>
Java多线程进阶(十二)—— J.U.C之atomic框架:Unsafe类
查看>>
MacOS安装MySQL 报错
查看>>
Java知识点总结(反射-反射操作泛型)
查看>>
Vue+webpack+Element 兼容问题总结
查看>>
【跃迁之路】【534天】刻意练习系列293(2018.07.24)
查看>>
初中级PHP面试基础汇总
查看>>
《软技能》读书笔记(下)
查看>>
textarea文域高度自适应
查看>>