spring5响应式编程

1、Spring5新特性
    
2、响应式编程
响应式编程:非阻塞应用程序,借助异步和事件驱动还有少量的线程垂直伸缩,而非横向伸缩(分布式集群)
当Http连接缓慢的时候,从数据库到Http数据响应中也会慢下来甚至停止,直到网速恢复后(背压)
响应式编程的转变:命令式编程转换为声明式编程

响应式编程的背压:
生产者消费者模型:线程交互  notify wait
背压就是保证生产者不会出现过度生产,也会保证消费者不会过度消费

WebFlux  内置Netty

3、Spring5的响应式编程的实现
响应式服务端的实现方式2种:
第一种:注解式应用  
SpringMVC的注解
只是映射方法的返回值:Mono和Flux

    1、创建SpringBoot项目
        记得选择响应式Web应用
    2、创建底层类
        模拟数据
    3、创建控制器
    4、创建映射方法
        返回值为Mono或者是Flux
        
        Mono:单个值得数据流
        Flux:多个值得数据流
    5、运行
        SpringBoot 只需要运行开关类就可以
        
    6、测试
        基于浏览器测试
第二种实现:函数式实现
    1、创建SpringBoot项目
        记得选择响应式Web应用
    2、创建底层类
        模拟数据
    3、创建数据生成类
        dao---generator   Mono/Flux
    4、创建数据解析器
        service---handler   Mono<ServerResponse>
    5、创建映射方法
        controller---router
        RouterFunction
        Mono:单个值得数据流
        Flux:多个值得数据流
    6、运行
        SpringBoot 只需要运行开关类就可以
        
    7、测试
        基于浏览器测试

posted @ 2018-07-04 16:15  walle1314  阅读(2699)  评论(0编辑  收藏  举报