现代应用架构瓶颈

网络

RPC(远程过程调用)

dubbo netty NIO+Async

MOM(消息中间件) RabbitMQ

DB jdbc连接

网络带宽 1GB---100MB

网络运用

设计架构

应用性能

阻塞式+不合理同步

阻塞式

同步

等待结果返回

用户下单 包含 用户服务100ms+下单服务100ms >200ms

1.通过认证token查询user

2. 用user.id执行下单服务

依赖模式   A--->B--->C    C的结果要给B,B的结果要给A

并行模式  C--->A|B C的结果可以给到B跟A

普通的并发编程不是最优的,

Reactive Streams 框架  其实就是Stream的响应式

  • stndard:标准
  • asynchronous stream processing: 异步处理stream.Java8其实已经能够处理。
  • non-blocking backpressure: 非阻塞
  • 使用观察者模式的扩展 observable sequences
  • 异步/同步混搭模式 同步非阻塞、异步非阻塞
  • 非阻塞 并不是异步 NIO VS AIO
  • 需要会使用Lambda,熟悉java并发
  • Java 8里Stream API
  • 优势:并行处理,无需关注线程池,future无感,callable无感。关注数据: reduce/gene

Spring 5 web Flux

  • rE

  1.Java 9 Flow API Java 9 异步并发编程

    2.Spring Reactor 高并发Reactor Stream编程之Reactor.是spring一个项目

    3.RxJava 

Vert异步编程

reactor

observable 

观察者模式 。事件监听

观察者模式VS 迭代器模式

API表述:

观察者模式:observable / Observer 观察者与被观察者

迭代器模式:Iterator

使用场景:

观察者模式是推模式 Push-Based

迭代器模式是拉模式 Put-Based

1.Publisher 数据发布者

2. Subscriber 数据消费者

3. Sub

4. 被压

Java 8 Lambda

  • Function
  • Consumer 只有消费数据,没有返回数据
  • Supplier 只有返回数据

Happens-Before

Lock-Free

jmm java线程模型中的内存模型 线程通信 消费传递

学习之响应式应用架构重构ReactiveX相关推荐

  1. Vue学习 — Vue响应式原理

    一. Object.defineProperty 在学习vue响应式原理之前,必须搞懂 Object.defineProperty. Object.defineProperty(obj, prop, ...

  2. 【Vue3源码学习】响应式源码解析:reactive、effect、ref

    源码版本 Vue3.2.24 废话不多说,直接开始!!! reactive响应式 源码地址:packages/reactivity/reactive.ts 先看一下在 Vue3 中定义的几个用来标记目 ...

  3. CSS学习及响应式布局

    CSS简介 什么是css? ​ cascading style sheet(层叠样式表) 1.如何修饰网页信息的显示样式 ​ 目前推荐遵循的是w3c发布的css3.0 用来表现XHTNL或者XML等样 ...

  4. RxSwift + Moya + HandyJSON + 各种插件搭建响应式网络架构

  5. Airbnb开源框架,真响应式架构——MvRx

    今日科技快讯 2月21日凌晨,三星美国旧金山举行Galaxy Unpacked 2019新品发布会.正式发布年度旗舰Galaxy S10系列手机以及折叠手机Galaxy Fold,还推出了首款5G手机 ...

  6. Bootstrap学习(六)响应式嵌入、well、分页符、label、徽章、巨幕、警告框、进度条

    今天继续学习! 响应式嵌入 可以将外部网页嵌入自己的网页中,长宽比由.embed-responsive-4by3控制. <div class="container">& ...

  7. 响应式Spring的道法术器(Spring WebFlux 教程)

    Spring WebFlux 2小时快速入门 Spring 5 之使用Spring WebFlux开发响应式应用. lambda与函数式(15min) Reactor 3 响应式编程库(60min) ...

  8. java拥抱响应式编程

    论编程开发语言中的王者,java语言当人不让.我知道很多人开始对我的答案嗤之以鼻,很多会人会反驳道说c,也有人说是python不香吗?如果编程语言看做是篮球界,那么c语言是乔丹,python是贾巴尔, ...

  9. 响应式编程以及反应式编程框架Reactor3的简单介绍

    前言 Reactor 3是一个围绕Reactive Streams规范构建的库,它在JVM上引入了响应式编程的一个范例.目前Spring5 引入的Webflux就是reactor 3实现的一个响应式w ...

最新文章

  1. ICRA2022 | OPV2V: 首个大型自动驾驶协同感知数据集+代码框架已开源
  2. python3.6执行pip3时 Unable to create process using ''
  3. WebRTC AEC算法
  4. Searchsploit
  5. 音视频技术开发周刊(第131期)
  6. 华南理工大学广州学院计算机二级,华南理工大学广州学院学子在第三届“泰迪杯”数据分析职业技能大赛中荣获佳绩...
  7. ExtJS和AngularJS比较
  8. 简说设计模式——策略模式
  9. html设置长宽高代码_Jenkins CI 自动构建与 CSTAT 代码
  10. mtk2503电流设定失败
  11. 游戏编程入门(2):创建游戏引擎和使用该引擎制作小游戏
  12. linux:挂载、rpm、yum、scp、ssh、crontab、时钟同步
  13. 一个操作系统的实现(8)进程间通信
  14. LeetCode207: 课程表(字节手撕算法拓扑排序)
  15. java软件工程师工作业绩_java软件工程师个人简历
  16. Android 一个TextView中设置文字不同字体大小和颜色的最完整方法
  17. 公众号文章怎么制作?
  18. nodejs zip 解压zip文件
  19. 浅谈emoji(分析与使用)
  20. 首期寄语 | 阿里游戏云马全治:伟大的改变,从“听说”开始

热门文章

  1. 查找重复出现N次或N次以上的数组项
  2. 【学习笔记17】buu [安洵杯 2019]easy_web
  3. 计算机实验报告网络应用,《计算机网络应用》实验报告(2016春).doc
  4. java获取月末日期_Java获取给定日期的月初和月末两个日期
  5. axis=1和axis=0的区别
  6. 机器学习《Machine Learning1》----机器学习经典总结:入门必读
  7. linux系统下MYSQL备份与恢复
  8. 该死webgl_该死的简单可扩展菜单,没有任何额外的依赖
  9. CSS 幻术 | 有关光影效果的黑魔法
  10. System.out.print(我爱你)