zoukankan      html  css  js  c++  java
  • 什么是响应式编程(未完待续)

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

    后端: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

  • 相关阅读:
    解释基于注解的切面实现?
    @Controller 注解?
    Spring由哪些模块组成?
    解释AOP模块 ?
    什么是Spring的依赖注入?
    自动装配有哪些局限性 ?
    在Spring框架中如何更有效地使用JDBC?
    @Autowired 注解?
    @Required 注解?
    解释AOP?
  • 原文地址:https://www.cnblogs.com/liaowenhui/p/13836296.html
Copyright © 2011-2022 走看看