美文网首页
ChannelUpstreamHandler理解

ChannelUpstreamHandler理解

作者: 追梦小蜗牛 | 来源:发表于2020-06-09 07:34 被阅读0次
person-walking-near-columns-3214972.jpg

介绍

处理upstream ChannelEvent,同时把ChannelEvent发送给在ChannelPipeline中的上一个或者下一个handler。
upstream ChannelEvent:是在ChannelPipeline中处理的,从第一个handler到最后一个handler。

upstream ChannelEvent

Event name Event type and condition Meaning
messageReceived MessageEvent a message object (e.g. {@link ChannelBuffer}) was received from a remote peer
exceptionCaught ExceptionEvent an exception was raised by an I/O thread or a {@link ChannelHandler}
channelOpen ChannelStateEvent a {@link Channel} is open, but not bound nor connected
channelClosed ChannelStateEvent a {@link Channel} was closed and all its related resources were released
channelBound ChannelStateEvent a {@link Channel} is open and bound to a local address, but not connected
channelUnbound ChannelStateEvent a {@link Channel} was unbound from the current local address
channelConnected ChannelStateEvent a {@link Channel} is open, bound to a local address, and connected to a remote address
writeComplete WriteCompletionEvent omething has been written to a remote peer
channelDisconnected ChannelStateEvent a {@link Channel} was disconnected from its remote peer
channelInterestChanged ChannelStateEvent a {@link Channel}'s {@link Channel#getInterestOps() interestOps} was changed

Sending the event forward (upstream)
通过ChannelHandlerContext把ChannelEvent传递给下一个handler

 void handleUpstream({@link ChannelHandlerContext} ctx, {@link ChannelEvent} e) throws Exception {
      ...
      ctx.sendUpstream(e);
      ...
  }

线程安全

一个IO线程可以用于处理多个Channel NIO
一个IO线程只能处理一个Channel OIO
OrderedMemoryAwareThreadPoolExecutor用来保证同一个Channel的Event的执行顺序
ChannelPipelineCoverage注解:all 代表可以把同一个ChannelHandler加入到多个ChannelPipeline,one代表只能加入到一个ChannelPipeline,其实all代表是线程安全、无状态,one代表线程不安全、有状态。

总结:

最近发现自己在学习业务项目的时候,分析的方式好像不对,事倍功半。比如分析一个复杂的业务系统,一上来自己就下个定义:这个太复杂了,不好理解的,以至于自己好像没有了征服的信心啦。还有就是,太过于专注点了,而没有从面开始,要分析一个大的业务系统,首先要从整体把握,走通整体流程,然后再深入到局部,熟悉具体的业务逻辑。不然只会看到冰山一角,掌控不了全局。
所以有时候,学习方法这个东西,还是要投入点时间思考的,不能一直一味的埋头苦干,适当的停下来,思考一下,优化一下自己的方式、思想。这也就是经常说的,及时的归纳总结。

相关文章

  • ChannelUpstreamHandler理解

    介绍 处理upstream ChannelEvent,同时把ChannelEvent发送给在ChannelPipe...

  • 理解!理解!!理解!!!

    1、如何理解MVC设计模式 MVC是一种架构模式,M表示MOdel,V表示视图View,C表示控制器Control...

  • 理解“理解”

    教育不是灌输而是揭示 教育就是向智者揭示智慧,对愚者掩盖无知。——安布罗斯 比尔斯 我们的课堂教学要做的是设计表现...

  • 理解理解,再理解

    【今日悦读】 1214-潇潇 书名:财富自由之路 作者:李笑来 篇目:10~12节 收获: 1,人生三大坑 莫名其...

  • 理解不被理解

    一个人的坐在电脑前发呆,不知道搞什么,闭上眼睛,感觉自己很孤独。这种是内心的那种,很不是滋味,不知道什么时候自己才...

  • 理解你的理解理顺理解

    理解你的理解理顺你的理解 生活中因为缺乏准确具体到位的沟通和具体的实施方向和可落地的方式,因为信息传达...

  • 理解不理解

    对于更多人而言,或许他们更看重的是对与错,是与非。这种执念而且经常让一些人变了味,甚至格格不入。 而对于个人而言,...

  • 理解不曾理解的

    上学时从来没把容貌当成大事儿,只是希望脸上的痘痘能少点,至于什么皮肤白、毛孔粗大、黑眼圈、肤色暗淡、脸型、眉形、眼...

  • 理解与被理解

    凡事都设身处地为别人着想,自己不愿做的事情也不强加给别人,理解的核心在于不自我。

  • 理解什么是理解

    《理解什么是理解》-花花 每个人都渴望被理解,希望被理解,不被理解是一件很痛苦的事情。 小朋友不理解妈妈为对自己反...

网友评论

      本文标题:ChannelUpstreamHandler理解

      本文链接:https://www.haomeiwen.com/subject/cxjyzhtx.html