在ChannelHandler的channelRead()方法中應(yīng)當(dāng)盡快釋放handler以讓當(dāng)前的NIO線程盡快處理下一個(gè)請(qǐng)求,那么channelRead()應(yīng)當(dāng)只進(jìn)行數(shù)據(jù)的解碼處理,然后將解碼后的數(shù)據(jù)“發(fā)送”給業(yè)務(wù)邏輯類進(jìn)行處理。那么問(wèn)題是,業(yè)務(wù)邏輯代碼應(yīng)該放在哪里:1. 使用JDK自帶的線程池,在channelRead()方法中調(diào)用pool.submit()提交任務(wù)2. 使用 ctx.executor().submit() 方法提交任務(wù)還有一個(gè)問(wèn)題,當(dāng)業(yè)務(wù)方法完成處理后需要返回HTTP響應(yīng),但是Netty不能在非NIO線程中使用ChannelHandlerContext, 那么業(yè)務(wù)方法如何將結(jié)果返回給NIO線程從而向客戶端返回響應(yīng)呢?
添加回答
舉報(bào)
0/150
提交
取消