Netty内部实现 一 消息处理主框架

1、EventExecutorGroup 内部维护多个消息循环,每一个group由一个EventLoop(EventExecutor)来监听和回调。具体实现类MultithreadEventExecutorGroup:内部使用children维护了多个EventLoop,默认分配策略是依次为每个channel分配EventLoop。一个eventLoop循环多个连接获取消息。这样保证每个连接的消息是单线程的。

2、EventLoop的具体实现是EpollEventLoop或NIOEventLoop,内部逻辑是每个obj对应一个线程,一个blockingqueue,一个事件循环。每一个循环周期,根据ioRatio,分别进行io事件监听和处理对应的回调。其中,processReady 回调各个handler。runAllTasks  依次回调LinkedBlockingQueue里的其他任务,在handler里面可能会扔过来runnable,基于时间的调度也会有runnable

3、processReady 过程

processReady->AbstractEpollUnsafe.epollInReadyRunnable->EpollServerSocketUnsafe.epollInReady->pipeline.fireChannelRead->各个handler

4、handler中挂回调

 ctx.executor().execute(command);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Netty是一个基于Java的异步事件驱动的网络应用框架,而小程序消息推送是指将消息实时推送给用户的通知服务。Netty可以通过以下步骤实现小程序消息推送: 1. 小程序客户端向服务器发起连接请求:首先,小程序客户端需要与服务器建立连接,可以使用Netty的客户端模块来实现,在请求连接时可以携带所需的信息和权限认证。 2. 服务器端接收连接并处理:服务器端需要使用Netty的服务端模块来接收客户端的连接请求,并进行相应的处理。可以采用Netty的事件处理机制来监听连接事件,一旦有新的连接建立,就可以处理相关逻辑,如消息的推送和处理。 3. 消息推送:一旦建立了连接,服务器端就可以向客户端发送消息了。Netty的Channel模块提供了丰富的消息传输方式,可以通过ChannelHandler来定义消息处理逻辑,然后将消息推送给客户端。可以根据业务需求选择合适的消息传输方式,比如WebSocket、TCP等。 4. 异常处理:在消息推送过程中可能会出现各种异常情况,比如网络波动、连接断开等,Netty提供了丰富的异步事件处理机制和异常处理逻辑,可以及时处理这些异常,保证消息推送的可靠性和稳定性。 总的来说,Netty提供了灵活且高效的网络通信能力,可以很好地支持小程序消息推送的实现。通过合理的使用Netty的各种模块和功能,可以实现小程序消息推送的即时性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值