FluxCreate解读 // FluxSink具有消费数据的能力, 结合 accept(T t) // 参数可以理解为 逻辑上的一个动作 - 懒加载, 出于机器性能考虑 public static <T> Flux<T> create(Consumer< ? super FluxSink<T>> emitter) { return create(emitter, OverflowStrategy.BUFFER); } // 参数一:FluxSink emitter …
FluxCreate解读 // FluxSink具有消费数据的能力, 结合 accept(T t) // 参数可以理解为 逻辑上的一个动作 - 懒加载, 出于机器性能考虑 public static <T> Flux<T> create(Consumer< ? super FluxSink<T>> emitter) { return create(emitter, OverflowStrategy.BUFFER); } // 参数一:FluxSink emitter …
AtomicXXXFieldUpdater技巧 考虑一种情况,假如我们的类中需要假如定义两个或者更多的原子类型,仅仅将类本身去定义为原子类型去操作它是远远不够的,通常把我们可能会去使用 AtomicReference的方式使其变成原子类,然后我们再去进行相关的原子操作 实际上,这是一种比较糟糕的做法,最直观的便是内存上的问题,因此这里介绍下 AtomicXXXReferenceUpdater的玩法 以 Reactor#LambdaSubscriber为例: // 底层 volatile Subscription s…
对于可控的事情,要保持谨慎;对于不可控的事情,要保持冷漠;人只能做自己能力范围内的事情,需要接受这个事实,并且以乐观的心态去看待这一切 ——法外狂徒张三
RemotingServer 这是一个网络层的封装对象,封装着网络连接的细节 我们知道,Netty底层封装着 NIO的细节,因此我们便可以通过对启动器进行相关的配置以来达到连接的建立以及相关的初始化,那么对于 remotingServer而言,其便是对 Netty连接实现等再进行了一层封装,当然,我们知道本来 Netty连接已经是够简易的了,so,单纯的封装并没有太大一样,因此,这块做了很多的扩展 字段 剖析 remotingServer,可以从其字段引入讲起,进而细节剖析其实现 public class Nett…
RocketMQ启动源码(上) NamesrvStartup 这是 RocketMQ启动类入口 // RocketMQ启动入口 public class NamesrvStartup { private static InternalLogger log; private static Properties properties = null; private static CommandLine commandLine = null; public static void main(String[] args) …
COPYRIGHT © 2020 良夜的博客. ALL RIGHTS RESERVED.
This blog has been running:
本站由
This site is protected by wp-copyrightpro.com