我写了一个 Netty HTTP 服务器。
我正在寻找处理 Http 请求
选项的正确方法:(1. Netty 处理程序 2. LMAX Disruptor)。
我在某处读到 LMAX Disruptor 非常适合异步事件处理。
但是在负载测试之后,使用 LMAX Disruptor 进行事件处理的服务器提供的吞吐量比 Netty Handler 少 70%。延迟也增加了 200%。
我在 8 核 16gb 盒子上获得了 30k qps。使用 Lmax Disruptor 后,我得到 10k qps。
目前我的服务只是读取 Json 请求并返回静态响应。我只是想比较一下到目前为止的原始性能。
我正在从 SimpleChannelInboundHandler 读取 HttpRequest 并发送到 LMAX Disruptor 事件处理程序并释放下面提到的配置的 netty 工作程序处理程序:
Netty IO 线程:24 和工作线程:48
Disruptor disruptor = new Disruptor<>(new EventFactory(), 65536, DaemonThreadFactory.INSTANCE);
是因为 Disruptor 为每个事件创建了新的守护线程吗?