Flux执行流程发布者Publisher 订阅者Subscriber 订阅协议Subscription准备Flux链路Mono链路1.订阅线程生成订阅者Subscriber2.订阅线程使用订阅者Subscriber调用发布者的订阅方法subscribe()3.subscribe()方法会传递到最开始的发布者的subscribe()方法并执行每传递一层封装一层订阅者Subscriber4.最开始的subscribe()方法执行时会携带订阅协议Subscription调用依次调用每一层订阅者Subscriber的onSubscribe方法直到调用到初始的订阅者的onSubscribe()其中中间层的订阅者Subscriber本身也是订阅协议5.初始的订阅者Subscriber在执行onSubscribe()时会使用订阅协议调用request()方法,传递请求元素数量,一层一层上发布者传递6.发布者接收到request()请求和请求数量,准备数据,调用next()方法,传递元素到订阅者7.通过一层一层的订阅者,最终传递到开时的订阅者8.当元素完毕时,发布者会调用onComplete()通知订阅者完成最终通知到开始的订阅者异步原理subscribeOn通过劫持中间操作生成新的发布者在新的线程中调用subscribe()方法这样新的线程中向上游的发布订阅并拦截request(),在新的线程中request(),形成异步异步线程的执行是操作符位置到最开始的发布者在到下游开始的订阅者异步原理publishOn通过劫持中间操作生成新的发布者拦截next()方法在新的线程中执行next()方法, 一直到下游最开始的订阅者