前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Netty之美--开篇

Netty之美--开篇

作者头像
早安嵩骏
发布2020-08-11 16:25:41
3090
发布2020-08-11 16:25:41
举报
文章被收录于专栏:程序猿人程序猿人
从事广告服务端研发4年了,终于有时间总结下Netty,希望有所受益 。

Netty简介

  1. Netty是由JBOSS提供的一个Java开源框架,Netty提供异步的、面向事件驱动的网络应用程序框架,用以快速开发高性能、高可靠性的网络IO程序;
  2. Netty可以帮助你快速、简单的开发出一个网络应用,大幅度简化和流程化了NIO的开发过程;
  3. Netty是目前最流行的NIO框架,Netty主要针对在TCP协议下,面向Clients端的高并发应用,或者Peer to Peer场景下的大量数据传输的应用,在互联网领域、大数据分布式计算领域、通信行业、游戏行业等都获得了广泛的应用,知名的框架Dubbo、ElasticSearch、lettuce等内部都采用了;
  4. 如图所示,基于零拷贝的缓存设计、通用通信API、可扩展的事件模型作为Netty的内核,并结合多种协议(例如FTP,SMTP,HTTP等),netty的“快速简便”并不意味着最终的应用程序将遭受可维护性或性能问题的困扰,netty以一种可插拔的精良设计,实现了一种无需妥协即可轻松实现开发,性能,稳定性和灵活性的方法。
原生NIO存在的问题
  1. NIO的类库和API复杂,使用麻烦;需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等;
  2. 需要具备其他的额外技能:要熟悉Java多线程编程,因为NIO编程涉及到Reactoor模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的NIO程序;
  3. 开发工作量和难度非常大:例如客户端面临断线重连、网络闪断、半包读写、失败缓存、网络拥塞和异常流得得得处理等等;
  4. JDK NIO的Bug,例如臭名昭著的Epoll Bug,会导致Selector空轮训,最终导致CPU 100%。
Netty特点
  1. 性能
  • 更高的吞吐量,更低的延迟:多路复用
  • 减少资源消耗:非阻塞
  • 减少不必要的内存复制:零拷贝
  1. 安全
  • 完整的SSL / TLS和StartTLS支持
  1. 使用方便
  • API清晰,模块丰富且可插拔;
  • 社区活跃,更新速度快;
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原生NIO存在的问题
  • Netty特点
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档