Netty 入门与实战:仿写微信 IM 即时通讯系统
Posted 闪电侠的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty 入门与实战:仿写微信 IM 即时通讯系统相关的知识,希望对你有一定的参考价值。
被小伙伴日常催更了一个多月的 Netty 小册终于和大伙正式见面了,为了答谢小伙伴对小册的厚爱,我将赠送15个免费阅读小册的兑换码。
有两种方式可以获取免费兑换码:
小册介绍
Netty 是互联网中间件领域使用最广泛最核心的网络通信框架。上图中可以看到,几乎所有互联网中间件或者大数据领域均离不开 Netty,掌握 Netty 是作为一名初中级工程师迈向高级工程师最重要的技能之一。
很多优秀的互联网公司,比如阿里、腾讯、美团、新浪、淘宝等,在高级工程师的面试过程中,也经常会问一些 Netty 相关的技术问题,如果你能全面地掌握 Netty,相信在面试过程中一定能够给面试官留下好的印象,提高进入心仪公司的成功率。
然而笔者发现,目前市面上对初学者比较友好的 Netty 实战入门资料太少了,网络上各类博客也是一堆零散的知识点的集合,无法串成一条线。笔者也读过一些使用了 Netty 开源框架的源码,其中涉及 Netty 的地方代码写的非常糟糕(本可以写得更好)。
笔者在 Netty 的使用以及源码方面积累了非常多的线上实战经验,通过梳理总结笔者的实战经验,用一个通俗易上手的例子把 Netty 各方面的知识点串起来带给大家,让大家更快速,更轻松地入门 Netty, 能够 cover 住 99%以上使用 Netty 的场景!
笔者所在的公司,使用 Netty 的长连集群线上 QPS 为几十万级别的规模,日吞吐为百亿规模,如此大的并发量,仅使用了 Netty 就能够轻松应对,而这些知识点在本小册中都会毫无保留的奉献给大家。
本小册通过一个仿微信 IM 系统,来演示如何使用 Netty 一步一步进行服务端和客户端长连通信的开发,本小册所涉及的代码将会按照小节的顺序放置到 GitHub 上,每小节对应一个分支,方便读者由浅入深地学习。
本小册不会讲解移动端相关的开发,而是会通过控制台来进行用户操作的模拟,包括:
客户端登录验证
客户端之间收发消息
群的创建
群聊成员管理
群内成员收发消息
客户端退出登录
本小册也会用大量的图来展示程序逻辑结构
有了这些图示,相信学习本小册会更加轻松有趣
作者介绍
闪电侠,某大型互联网公司基础架构部技术专家,主要做后台服务器的开发。精通 Netty,Spring,MyBatis,熟读互联网公司常见开发框架源码。负责公司各类长连项目的开发与维护,有千万级别实时在线连接,百亿吞吐的长连通信经验。Vim 党,IDEA 党,对效率和优秀整洁的编码风格有极致的追求。有以下分享经历
简书 「Netty 源码分析」 专栏作者
异常火爆的 「IntelliJ IDEA 神器使用技巧」 作者
「Netty 源码分析视频教程」 作者
你会学到什么?
通过本小册,你将会学习到如何使用 Netty 完成最基本的网络通信程序,课程中将会包含以下知识点
服务端如何启动
客户端如何启动
长连自定义协议如何设计
粘包拆包原理与实践
如何实现自定义编解码
pipeline 与 channelHandler
心跳与空闲检测
适宜人群
需要掌握 Java 开发基础,了解 Maven 依赖和构建基本知识
有一定的网络编程基础,了解 TCP/IP 基本概念,零 Netty 服务端开发经验,想通过几个实战,来系统学习 Netty 服务端开发的同学
使用过 Netty 进行开发,但是入门尚浅的同学
想了解最常见的 Netty 调优方法的同学
名人推荐
以上是关于Netty 入门与实战:仿写微信 IM 即时通讯系统的主要内容,如果未能解决你的问题,请参考以下文章