Netty在物联网中的应用
Posted 易货嘀51区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty在物联网中的应用相关的知识,希望对你有一定的参考价值。
Netty应用实战
1
物联网是什么
通过各式各样的通讯手段将各式各样的传感设备联接到互联网(或其它类型网络)
2
物联网技术三要素
传感器:
gps、陀螺仪、水平传感器、距离传感器、重力感应加速计、光线/温度/湿度/气压、摄像头、射频…
通讯网络:
wifi、gprs、2g/3g/4g/5g、nb-iot、lora、zigbee、bluetooth、卫星…
应用:
各种上层应用软件
3
Netty引入
Netty是一个基于Java NIO client-server的网络应用框架
使用Netty可以快速开发网络应用,例如服务器和客户端协议
使用Netty可以解决以下问题
1)异步非阻塞I/O+Reactor模式
2)Tcp接收和发送缓冲区使用直接内存,避免内存复制
3)内存池循环利用ByteBuf
4)无锁化串行设计
5)引用计数器及时释放对象,降低GC频率
6)可定制性强:ChannelPipeline基于责任链模式开发,便于拦截、扩展
7)提供大量工厂类、工具类
4
Netty在车联网平台项目中的使用
Netty逻辑架构图
Netty数据流转
编码解码
1.Netty提供的辅助类
ByteToMessageDecoder
MessageToByteEncoder<T>
MessageToMessageDecoder<T>
MessageToMessageEncoder<T>
2.Netty自带的解码器
LineBasedFrameDecoder
DelimiterBasedFrameDecoder
FixedLengthFrameDecoder
LengthFieldBasedFrameDecoder
自定义解码器-万能解决方案
车联网架构
致敬那些年踩过的坑
match
1.Decoder &encoder要成对出现
2.Decoder时先把字节流解码成POJO,避免在一个业务handler里即解码又处理业务逻辑
3.业务处理不要跟io在同一个线程
4.业务处理涉及到通道操作一定要有异步思想
5.调试时建议开启LoggingHandler(LogLevel.INFO)
6.在解包时建议设置最大有效数据帧长度
7.一旦有异常发生建议关闭通道
以上是关于Netty在物联网中的应用的主要内容,如果未能解决你的问题,请参考以下文章