高手问答第 280 期 —— 攻破Netty底层原理

小白兔爱吃大灰狼 发布于 04/11 11:40
阅读 6K+
收藏 14

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

Netty是一个互联网公司非常流行的Java开源网络应用程序框架,可以帮助用户快速开发高性能、高稳定的网络通信服务。作为最有影响力的NIO框架,Netty得到了众多架构师和程序员的喜爱,并且在互联网基础架构、游戏行业、大数据通信等领域都有广泛的应用。尤其在互联网基础架构方面,Netty几乎一统江湖。那么很多Java学习者都觉得Netty入门的门槛很高,其实是因为这方面的资料太少了,并不是因为它有多难。希望通过本期活动,让大家学会如何快速编写出高质量的网络应用程序。

OSCHINA本期高手问答( 4月12日- 4月18日) 我们请来了@闪电侠 和大家一起探讨关于Netty、源码相关的问题。

可讨论的问题包括但不限于:

1.Netty 能实现哪些功能

2.面试中Netty的哪些问题会常被问到

3.最快上手Netty的学习路线

4.如何性能调优

5.读源码的意义是什么

或者其它关于Netty、Java、源码的相关问题,也欢迎大家积极提问!

嘉宾简介

闪电侠(俞超),某互联网公司技术专家。精通Netty、Spring、MyBatis 等开源框架。负责公司各类长连项目的开发与维护,有千万级别实时在线连接、百亿吞吐长连通信经验。Vim和IDEA党,对效率和编写优美代码有极致的追求。

为了鼓励踊跃提问,@博文视点 会在问答结束后从提问者中抽取 5 名幸运会员赠予《跟闪电侠学 Netty:Netty 即时聊天实战与底层原理》一书。

京东购买链接:https://item.jd.com/13611960.html

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就Netty、源码相关关问题向@闪电侠 提问,请直接回帖提问。

加载中
0
小白兔爱吃大灰狼
小白兔爱吃大灰狼

高手问答第 280 期 —— 攻破Netty底层原理

@无级别码农 @Morty777  @Mark哥是我   @empireghost   @mahengyang

恭喜以上五位网友分别获得《跟闪电侠学 Netty:Netty 即时聊天实战与底层原理》一书。

请于4月28日前登陆账号, 私信  @小白兔爱吃大灰狼   告知快递信息(格式:姓名+电话+地址)

2
小xu中年
小xu中年

@闪电侠的博客 对不起,可以一起学习tio吗?

闪电侠的博客
闪电侠的博客
来来来,一起学习 tio
1
Mark哥是我
Mark哥是我
netty 最近发布了5.0的预览版本,这个版本同4.x版本相比,特性是什么?未来可期吗?
闪电侠的博客
闪电侠的博客
这个我还没详细研究,大致看了一下,API 会更加精简,去掉一些不怎么用的代码,4.x 迁移到 5.x 需要付出一些代价的
1
Morty777
Morty777

@闪电侠的博客  老师您好  几个问题咨询下

  1. Netty的高性能体现在哪些方面?
  2. 能不能讲几个Netty优化的主要的关注点。
  3. 新手如何入门 Netty
  4. 本书 有实际关于 Netty的 im或者 游戏相关实战源码教学吗
Morty777
Morty777
回复 @闪电侠的博客 : 非常感谢
闪电侠的博客
闪电侠的博客
1. Reactor 模型,Recycler 及 FastThreadLocal 等一些组件,零拷贝技术,线程无锁化技术,内存池等等,书里面都会介绍。 2. 合并 Handler,缩短传播路径,自定义业务线程池,异步回调处理,这些书里面入门篇最后一章有详细介绍 3. 基于实战类项目来实践 4. 本书源码:https://github.com/lightningMan/flash-netty。
0
pyboy58
pyboy58

@闪电侠的博客  1.Netty在Javaweb微服务项目中是什么?相当于什么

2. Netty怎么入门 ,目前项目中使用到上org.jboss.netty. 3.2.5.Final 这个版本是否过于老旧了?

 

闪电侠的博客
闪电侠的博客
1. 一些高性能的 web 服务框架底层会使用到 netty。 2. 3.x 版本确实比较老旧了,但是 3.x 迁移到 4.x,改动会比较大,如果没有遇到问题,建议不要迁移,入门的话还是建议通过项目驱动的方式去逐个了解 Netty 的各个组件,知识串联起来掌握才会更加牢固,新出版的书可以帮到你
0
指尖凉hsz

netty门槛较高,曾经也通过看书看博客学习,但都没能学下去,您觉得对于没有netty经验的人来说应该如何去学习netty?@闪电侠的博客

闪电侠的博客
闪电侠的博客
通过项目驱动来学,一个完整的项目做完,知识体系也就掌握了,我的新书可以帮你坐到这一点,如果有 java 和网络编程的基础,大概两周左右的时间可以掌握
0
无级别码农

@闪电侠的博客 在使用netty中,我们需要注意哪些?

闪电侠的博客
闪电侠的博客
1. 不要堵塞主 reactor 线程,不然会导致全局请求处理能力下降。 2. 很多操作都是异步的,对于统计,日志类代码需要注意注册回调来实现。 3. 事件传播顺序,包括 inBound 事件,outBound 事件的顺序需要注意,否则很容易出现 bug。 4. 保证足够的堆外内存。 更多的注意事项可以参考书中入门篇的最后一章
0
梦星辰128
梦星辰128

@闪电侠的博客  分布式会话怎么处理,发送消息时如何定位会话通道

闪电侠的博客
闪电侠的博客
分布式环境下,一条消息从业务发出,经过路由网关,路由网关根据用户信息在 redis 中查到用户连接在哪台服务器(用户登录后需要把用户连接的服务器信息保存至 redis),然后把数据透传到这台服务器进行下发
0
贺小皮蛋
贺小皮蛋

@闪电侠的博客 目前业务上还没用到 ,一些底层框架貌似用到了 老师 有啥业务可以使用吗 求科普

闪电侠的博客
闪电侠的博客
目前应用场有了中间件、大数据、物联网,还有移动端的一些长连服务
0
小伙你很棒棒哟
小伙你很棒棒哟

@闪电侠的博客 IM端后端,使用有哪些优势,需要有什么注意点

闪电侠的博客
闪电侠的博客
编程模型简单,专注于实现业务,只要注意躲避常见的坑即可,常见的坑包括: 1. 不要堵塞主 reactor 线程,不然会导致全局请求处理能力下降。 2. 很多操作都是异步的,对于统计,日志类代码需要注意注册回调来实现。 3. 事件传播顺序,包括 inBound 事件,outBound 事件的顺序需要注意,否则很容易出现 bug。 4. 保证足够的堆外内存。 更多的注意事项参考书中入门篇最后一章
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部