Reactor 线程模型的对比
在高性能网络通信框架中,I/O 模型和线程模型是两个核心的关注点。对于 I/O 多路复用模型,需要将 selector 上的事件分发给对应的事件处理者。在 Reactor 线程模型中,Reactor 作为事件分发器,负责分发各种 I/O 事件。
在高性能网络通信框架中,I/O 模型和线程模型是两个核心的关注点。对于 I/O 多路复用模型,需要将 selector 上的事件分发给对应的事件处理者。在 Reactor 线程模型中,Reactor 作为事件分发器,负责分发各种 I/O 事件。
本文记录 java BIO 和 NIO 的使用方式,以方便查阅。
最近遇到了一次诡异的 NoSuchMethodError 错误,通常情况下遇到这个报错,大概率是类加载冲突导致的,然而这次的情况却不大一样。
每次换新电脑就要重新配置一下,然后又要去找之前是怎么配置的,浪费时间,不如将配置过程记录在此,方便下次使用。
对于一个 Netty client 来说,在配置好 Bootstrap 之后,通过调用其 connect 方法来连接到远程服务端,如下所示
1 | Bootstrap b = new Bootstrap(); |
Netty 中通过在 pipeline 上添加各种 handler 组合来实现不同的逻辑,handler 又可以分为 ChannelInboundHandler 和 ChannelOutboundHandler,它们分别用于处理入站事件和出站事件。
netty 中每个 channel 都会绑定了一个 pipeline,当有入站事件或出站操作时,会由 pipeline 中的 handler 进行拦截处理。
netty 是一个基于异步事件驱动实现的网络编程框架,它的内部使用了大量的异步编程方法,这是它性能高效的一个原因,但同时也使得代码阅读起来更加困难,本文就尝试分析下它的启动过程
netty 使用 DefaultPromise 完成异步操作,它对 jdk 的 Future 进行了扩展,提供了更丰富的功能。
Mac 下编译 netty 报错,提示 Netty/Transport/Native/Unix/Common 模块编译失败,到网上搜索一下,并未发现有人遇到过类似问题,因此做下记录。