Netty初见

Posted 逅弈逐码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty初见相关的知识,希望对你有一定的参考价值。

Netty初见

gris 转载请注明原创出处,谢谢!

初见netty还是在2016年,当时我做的一个项目需要实现一个即时聊天的功能,当时和一位同事聊及此事,他向我推荐可以选择一些开源的网络框架,比如mina、netty。而他此前研究过mina,但通过在网上搜寻资料发现netty似乎比mina更好一些,从框架整体的设计,api的易用性,文档的丰富程度,社区的活跃度等等方面netty更胜一筹。netty和mina的作者是同一人,Trustin Lee,一位韩国欧巴。在网上找了一些例子,我就很轻松的通过netty+websocket实现了一个简单但稳定的即使聊天的功能。

此后,我又帮一个同学做了一个鱼塘环境监测系统的后台,通过netty实现。系统的架构非常简单,服务端通过netty监听一个端口,对外提供tcp协议的服务,鱼塘各位不同的位置放了很多不同的传感器,监测鱼塘温度、湿度、PH值等等各种可能影响鱼类生长的因素。传感器和服务端之间通过tcp通讯,我定义了一个自定义的数据格式。传感器开启后会和服务端进行连接,连接成功后服务端会将当前传感器纪录到一个map中,并和传感器建立一个心跳。传感器每隔一分钟会传输一次最新的数据,当传感器超时30秒未传输数据时,服务端户主动发起一个获取数据的请求。除此以外,系统提供了一个页面,将监测到的数据和各传感器的状态通过echarts进行可视化的展示。

  • Bean的管理

  • 对象自动注入

  • 自定义路由

  • 参数转换

  • Session管理

  • Cookie管理

  • 结果渲染

  • 单节点模式

  • 主从多节点模式

除此之外,netty还可以做很多其他的服务,没有做不到,只有想不到,能做到什么程度完全取决于你的脑洞有多大。

本文将作为我学习分享netty的系列文章的一个引子,后面我将尝试更深入的了解和分析netty的构成、实现原理以及它高性能的秘密。

分享将围绕Netty的几大组件来进行:

  • 1.ByteBuf

  • 2.Channel

  • 3.EventLoop

  • 4.ChannelHandler

  • 5.ChannelHandlerContext

  • 6.Codec



以上是关于Netty初见的主要内容,如果未能解决你的问题,请参考以下文章

netty系列之:NIO和netty详解

荐书 | Netty进阶之路:跟着案例学Netty

netty可以做啥

Netty 简介《Netty In Action》 #yyds干货盘点#

Netty:netty 中通道的进程生命周期是啥?

Netty源码:2 把握 Netty 整体架构脉络