通过前面 NIO 的学习可以看到,NIO 的类库和API 繁杂,例如 Selector、 ServerSocketChannel、 SocketChannel、 ByteBuffer等这些对于从事应用层的程序员来说,使用起来开发工作量和难度都非常大。
最近在对推送服务吞吐量进行提升优化,保证上游业务请求tps4000提升到tps8000,主要是减少了接口响应时间,保证业务方在总推送量不变和本地服务机器不增加的前提下,每秒的吞吐量提升,提升后自然短时间内tcp连接也增加很多,1.推送服务调用个推和其他推送厂商有http请求,2.业务方调用推送服务有http请求。
同步、异步是相对的,在请求或执⾏过程中,如果会阻塞等待,就是同步操作,反之就是异步操作。在出站流程开始的时候,通过调⽤ ctx.writeAndFlush,Bytebuf 缓冲区开始进⼊出站处理的 pipeline 流⽔线 。
官方的介绍:Netty is an asynchronous event-driven network application frameworkfor rapid development of maintainable high performance protocol servers & clients.
首先看一下reactor线程模型的使用:这里设置了2个线程池,bossGroup主要用于处理客户端的accept连接、断开连接等,workerGroup处理数据的传输,包括read、write事件和pipeline链条中的handler。