实际场景运用

  • Netty实现业务分离(类似于Controller的url)
  • 通过自定义注解的方式
  • 借助spring来管理自定义注解(spring的生命周期)

netty3 到netty4\5之间的转变

Netty实际场景运用_Netty业务分离

业务线程池和消息串行化

Netty实际场景运用_spring_02


使用线程池的方式,让专门的线程负责专门的业务,避免请求占用大量系统资源

利用消息串行化保证一个业务的流程的完整

Netty的异步是通过业务线程池来实现的

Netty3 使用业务线程池
通过在线程池任务队列的方式实现异步。

Netty 4使用业务线程池

//业务线程池
final EventLoopGroup busyGroup=new NioEventLoopGroup();
//在管道设置中将业务线程池与Hanlder关联
//让专门的业务线程池执行指定的业务
ch.pipeline().addLast(busy,new ServerHandler());

Netty3,这种做法存在弊端,不能保证同一个玩家的请求被有序的处理。需要对线程池进行进一步设置,保证请求的有序性。(当请求进入时,核心线程数已满,不能有序放入任务队列当中)

Netty实际场景运用_Netty业务分离_03