作为 Java 开发有必要系统深入学习下 netty 吗

2022-09-09 09:47:52 +08:00
 rqxiao

工作几年来没用过。但 rocketmq ,dubbo 等 都用了 netty 。netty 是 java 网络编程的王者。

目前 nio 和 netty 入门都了解了。netty 是高级 java 迈不去的坎?

6094 次点击
所在节点    Java
30 条回复
carytseng
2022-09-09 16:16:08 +08:00
我熟悉 netty 是从对接一个 tcp 的设备开始的,在工作中学习是最深刻的。
wxlwsy
2022-09-09 20:21:15 +08:00
如果你想研究 netty 底层可以先写点 nio 和 aio 原生代码的非常有用.
brust
2022-09-09 20:29:47 +08:00
@yazinnnn 10

能介绍下吗
只用过 netty 和 vertx
choice4
2022-09-09 22:04:00 +08:00
@wxw752 有集群实现方案吗
urnoob
2022-09-09 23:17:26 +08:00
我是一个用过并且看过源码的人,我是这么认为的
netty 要看源码就看下从接受链接到 handler 这一条线就可以了。你只要理解数据是怎么过来的就行,不需要细节。这样有助于你使用它。
这个过程中会涉及到 nio 操作,你可以忽略,转而看下 linux 用 epoll 三函数怎么用会清晰很多。也能学到底层一些东西。
内存分配那块没必要看。
wxw752
2022-09-10 15:23:06 +08:00
@choice4 集群实现也简单,业务逻辑上稍微改改就行,根据 channelId 判断长连接是不是连在当前服务实例中。

如果在当前服务实例就正常处理,否则搞个发布订阅的中间件通知给其他实例,redis,zk,mq 都行。
mmdsun
2022-09-11 00:18:39 +08:00
不做研发、不造轮子用不上,看你在公司干的活是什么。

当然可以面试提升 B 逼格
xuanbg
2022-09-12 10:09:29 +08:00
不想自己造个 nio 的轮子替代 netty ,或者基于 netty 进行二次开发,就没必要系统深入地学习 netty 。
学习任何知识,都要问自己这几个问题,而不是人学亦学。
1 、你学它有什么用没有?
2 、投入的时间和精力能给你带来什么好处?
diagnostics
133 天前
@wxw752 #4 netty 本来就是简化网络编程的,怎么简化网络编程这个比较难,要学 IO 模型,网络编程,线程模型,零拷贝等等
wxw752
133 天前
@diagnostics #29 哥们你这个坟一铲子挖哪年去了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/878812

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX