• 什么是响应式编程(未完待续)


    公司最近想使用响应式技术的新开发技术架构

    后端:WebFlux+R2BDC+WebClient+DatabaseClient+Reactive Transaction+Reactive Redis

    什么是响应式编程?

    响应式编程(reactive programming)是一种基于数据流(data stream)和变化传递(propagation of change)的声明式(declarative)的编程范式。

    怎么理解变化传递(propagation of change)?

    在命令式编程(我们的日常编程模式)下,式子a=b+c,这就意味着a的值是由b和c计算出来的。如果b或者c后续有变化,不会影响到a的值。

    在响应式编程下,式子a:=b+c,这就意味着a的值是由b和c计算出来的。但如果b或者c的值后续有变化,会影响到a的值。

    怎么理解数据流和声明式呢?

    本来数据是我们自行处理的,后来我们把要处理的数据抽象出来(变成了数据流),然后通过API去处理数据流中的数据(是声明式的)。

    比如下面的代码;将数组中的数据变成数据流,通过显式声明调用.sum()来处理数据流中的数据,得到最终的结果:

    响应式编程的场景应用

    (1)比如一个日志监控系统,我们的前端页面将不再需要通过“命令式”的轮询的方式不断向服务器请求数据然后进行更新,而是在建立好通道之后,数据流从系统源源不断流向页面,从而展现实时的指标变化曲线;

    (2)再比如一个社交平台,朋友的动态、点赞和留言不是手动刷出来的,而是当后台数据变化的时候自动体现到界面上的。

    异步非阻塞

    响应式编程离不开异步非阻塞,响应式编程它是异步的,也可以理解成变化传递它是异步执行的。

    JDK8 Stream流是同步的,它就不适合用于响应式编程,JDK9 已经支持响应式流了。

    JDK9 Reactive

    好文/参考

    WebFlux  

    https://zhuanlan.zhihu.com/p/92460075

    R2BDC

    https://www.codercto.com/a/44252.html

  • 相关阅读:
    jquery UI_tabs
    乔布斯传
    微信小程序
    天气预报相关参数
    ASP.NET MVC TempData使用心得
    jquery.restrictFieldLength.js
    join Linq
    SQL_关联映射
    介绍几个好用的vs插件
    DependencyResolver.Current
  • 原文地址:https://www.cnblogs.com/liaowenhui/p/13836296.html
Copyright © 2020-2023  润新知