Netty 入门与实战:仿写微信 IM 即时通讯系统

Posted 闪电侠的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty 入门与实战:仿写微信 IM 即时通讯系统相关的知识,希望对你有一定的参考价值。



被小伙伴日常催更了一个多月的 Netty 小册终于和大伙正式见面了,为了答谢小伙伴对小册的厚爱,我将赠送15个免费阅读小册的兑换码。


有两种方式可以获取免费兑换码:

小册介绍

Netty 入门与实战:仿写微信 IM 即时通讯系统

Netty 是互联网中间件领域使用最广泛最核心的网络通信框架。上图中可以看到,几乎所有互联网中间件或者大数据领域均离不开 Netty,掌握 Netty 是作为一名初中级工程师迈向高级工程师最重要的技能之一。

很多优秀的互联网公司,比如阿里、腾讯、美团、新浪、淘宝等,在高级工程师的面试过程中,也经常会问一些 Netty 相关的技术问题,如果你能全面地掌握 Netty,相信在面试过程中一定能够给面试官留下好的印象,提高进入心仪公司的成功率。

然而笔者发现,目前市面上对初学者比较友好的 Netty 实战入门资料太少了,网络上各类博客也是一堆零散的知识点的集合,无法串成一条线。笔者也读过一些使用了 Netty 开源框架的源码,其中涉及 Netty 的地方代码写的非常糟糕(本可以写得更好)。

笔者在 Netty 的使用以及源码方面积累了非常多的线上实战经验,通过梳理总结笔者的实战经验,用一个通俗易上手的例子把 Netty 各方面的知识点串起来带给大家,让大家更快速,更轻松地入门 Netty, 能够 cover 住 99%以上使用 Netty 的场景!

Netty 入门与实战:仿写微信 IM 即时通讯系统

笔者所在的公司,使用 Netty 的长连集群线上 QPS 为几十万级别的规模,日吞吐为百亿规模,如此大的并发量,仅使用了 Netty 就能够轻松应对,而这些知识点在本小册中都会毫无保留的奉献给大家。

本小册通过一个仿微信 IM 系统,来演示如何使用 Netty 一步一步进行服务端和客户端长连通信的开发,本小册所涉及的代码将会按照小节的顺序放置到 GitHub 上,每小节对应一个分支,方便读者由浅入深地学习。

本小册不会讲解移动端相关的开发,而是会通过控制台来进行用户操作的模拟,包括:

  1. 客户端登录验证

  2. 客户端之间收发消息

  3. 群的创建

  4. 群聊成员管理

  5. 群内成员收发消息

  6. 客户端退出登录

本小册也会用大量的图来展示程序逻辑结构

Netty 入门与实战:仿写微信 IM 即时通讯系统

有了这些图示,相信学习本小册会更加轻松有趣

Netty 入门与实战:仿写微信 IM 即时通讯系统

作者介绍

Netty 入门与实战:仿写微信 IM 即时通讯系统

闪电侠,某大型互联网公司基础架构部技术专家,主要做后台服务器的开发。精通 Netty,Spring,MyBatis,熟读互联网公司常见开发框架源码。负责公司各类长连项目的开发与维护,有千万级别实时在线连接,百亿吞吐的长连通信经验。Vim 党,IDEA 党,对效率和优秀整洁的编码风格有极致的追求。有以下分享经历

  • 简书 「Netty 源码分析」 专栏作者

  • 异常火爆的 「IntelliJ IDEA 神器使用技巧」 作者

  • 「Netty 源码分析视频教程」 作者

你会学到什么?

通过本小册,你将会学习到如何使用 Netty 完成最基本的网络通信程序,课程中将会包含以下知识点

  1. 服务端如何启动

  2. 客户端如何启动

  3. 长连自定义协议如何设计

  4. 粘包拆包原理与实践

  5. 如何实现自定义编解码

  6. pipeline 与 channelHandler

  7. 心跳与空闲检测

适宜人群

  1. 需要掌握 Java 开发基础,了解 Maven 依赖和构建基本知识

  2. 有一定的网络编程基础,了解 TCP/IP 基本概念,零 Netty 服务端开发经验,想通过几个实战,来系统学习 Netty 服务端开发的同学

  3. 使用过 Netty 进行开发,但是入门尚浅的同学

  4. 想了解最常见的 Netty 调优方法的同学

名人推荐


迫不及待的小土豪们可以直接点击下方的 阅读原文购买,购买后来这里评价积累点赞数仍然有机会获取免费的兑换码,可以送同事,送朋友,送领导,送小弟。 本小册会有专门的小册微信群,购买后可入,志同道合的人一起学习探讨,相互切磋,其乐无穷。
最后,自我表扬一下最近完成的对话式学习,轻松有趣的学习方式希望能够对你有用

以上是关于Netty 入门与实战:仿写微信 IM 即时通讯系统的主要内容,如果未能解决你的问题,请参考以下文章

基于Netty,从零开发一个im即时通讯

基于Netty,从零开发一个im即时通讯

在Netty的基础下如何搭建IM即时通讯集群

开源即时通讯IM框架MobileIMSDK的微信小程序端开发快速入门

Netty实战:设计一个IM框架

Netty实战:设计一个IM框架就这么简单!