Netty 入门与实战:仿写微信 IM 即时通讯系统--掘金小册课程推荐/优惠
版权声明
本站非掘金小册官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。
课程详情
课程介绍
小册介绍
Netty 是互联网中间件领域使用最广泛最核心的网络通信框架。上图中可以看到,几乎所有互联网中间件或者大数据领域均离不开 Netty,掌握 Netty 是作为一名初中级工程师迈向高级工程师最重要的技能之一。
很多优秀的互联网公司,比如阿里、腾讯、美团、新浪、淘宝等,在高级工程师的面试过程中,也经常会问一些 Netty 相关的技术问题,如果你能全面地掌握 Netty,相信在面试过程中一定能够给面试官留下好的印象,提高进入心仪公司的成功率。
然而笔者发现,目前市面上对初学者比较友好的 Netty 实战入门资料太少了,网络上各类博客也是一堆零散的知识点的集合,无法串成一条线。笔者也读过一些使用了 Netty 开源框架的源码,其中涉及 Netty 的地方代码写的非常糟糕(本可以写得更好)。
笔者在 Netty 的使用以及源码方面积累了非常多的线上实战经验,通过梳理总结笔者的实战经验,笔者用一个通俗易上手的例子把 Netty 各方面的知识点带给大家,让大家更快速,更轻松地入门 Netty。
笔者所在的公司,使用 Netty 的长连集群数为几十规模,机器数为数百规模,线上 QPS 为几十万级别的规模,日吞吐为百亿规模,如此大的并发量,仅使用了 Netty 就能够轻松应对,而这些知识点在本小册中都会毫无保留的奉献给大家。
本小册通过一个仿微信 IM 系统,来演示如何使用 Netty 一步一步进行服务端和客户端长连通信的开发,本小册所涉及的代码将会按照小节的顺序放置到 GitHub 上,每小节对应一个分支,方便读者由浅入深地学习。
本小册不会讲解移动端相关的开发,而是会通过控制台来进行用户操作的模拟,包括:
- 客户端登录验证
- 客户端之间收发消息
- 群的创建
- 群聊成员管理
- 群内成员收发消息
- 客户端退出登录
本小册也会用大量的图来展示程序逻辑结构
有了这些图示,相信学习本小册会更加轻松有趣
作者介绍
闪电侠,某大型互联网公司基础架构部技术专家,主要做后台服务器的开发。精通 Netty,Spring,MyBatis,熟读互联网公司常见开发框架源码。负责公司各类长连项目的开发与维护,有千万级别实时在线连接,百亿吞吐的长连通信经验。Vim 党,IDEA 党,对效率和优秀整洁的编码风格有极致的追求。有以下分享经历
- 简书 「Netty 源码分析」 专栏作者
- 异常火爆的 「IntelliJ IDEA 神器使用技巧」 作者
- 「Netty 源码分析视频教程」 作者
- Github 地址: https://github.com/lightningMan
- 微信公众号 「闪电侠的博客」 专栏作者
你会学到什么?
通过本小册,你将会学习到如何使用 Netty 完成最基本的网络通信程序,课程中将会包含以下知识点
- 服务端如何启动
- 客户端如何启动
- 长连自定义协议如何设计
- 粘包拆包原理与实践
- 如何实现自定义编解码
- pipeline 与 channelHandler
- 心跳与空闲检测
适宜人群
- 需要掌握 Java 开发基础,了解 Maven 依赖和构建基本知识
- 有一定的网络编程基础,了解 TCP/IP 基本概念,零 Netty 服务端开发经验,想通过几个实战,来系统学习 Netty 服务端开发的同学
- 使用过 Netty 进行开发,但是入门尚浅的同学
- 想了解最常见的 Netty 调优方法的同学
名人推荐
课程目录
- 仿微信 IM 系统简介
- Netty 是什么?
- Netty 环境配置
- 服务端启动流程
- 客户端启动流程
- 实战:客户端与服务端双向通信
- 数据传输载体 ByteBuf 介绍
- 实战:实现客户端与服务端收发消息
- 客户端与服务端通信协议编解码
- 实战:实现客户端登录
- pipeline 与 channelHandler
- 实战:构建客户端与服务端 pipeline
- 实战:拆包粘包理论与解决方案
- channelHandler 的生命周期
- 实战:群聊的发起与通知
- 实战:客户端互聊原理与实现
- 实战:使用 channelHandler 的热插拔实现客户端身份校验
- 实战:群聊的成员管理(加入与退出,获取成员列表)
- 实战:群聊消息的收发及 Netty 性能优化
- 实战:心跳与空闲检测
- 小册总结
- 扩展:进阶学习 Netty 的方向与资料
- 小册读者总结