工作几年来没用过。但 rocketmq ,dubbo 等 都用了 netty 。netty 是 java 网络编程的王者。
目前 nio 和 netty 入门都了解了。netty 是高级 java 迈不去的坎?
|      1bootvue      2022-09-09 09:50:49 +08:00 有 | 
|  |      2frank1256      2022-09-09 09:53:06 +08:00 需要,但不用需要的这么彻底,比“了解”多一点就行,java 生态里,像我这样的低 level 码农没有机会造轮子。深入学习只是为了能看懂源码,以及面试装逼。 | 
|  |      3RedBeanIce      2022-09-09 09:56:50 +08:00 via iPhone  1 楼主的目标是提升自己嘛? 经过一段时间思考,我认为很多时间学这些东西都没有用,我们更应该活在当下的去学习经常会用到的东西,然后去学习自己感兴趣的 or 未来可能会用到的 例如我活在当下,可能 mybatis 是最需要研究的,还有 spring ,mysql ,es ,kafka 等等,,,当然每个人所处的岗位是不一样的,楼主和我不一样,请因地制宜。 最后回复楼主的问题,需要了解 netty ,但是似乎楼主可能处于高段位?我也好像觉得我们公司高工不会 netty | 
|  |      4rockddd      2022-09-09 10:02:59 +08:00 公司的 ws 服务器就是我用 netty 写的,可以去学一下,真的没多难。 | 
|  |      5leeyuzhe      2022-09-09 10:08:32 +08:00 用法有必要学习,原理或者源码看个人需求 | 
|      6assiadamo      2022-09-09 10:33:21 +08:00 只用 java ,聚焦网络层和性能的需要重点了解,其他的就是学习他的编码风格、设计模式、数据结构啥的 但更重要的是了解操作系统级的 socket 编程以及 TCP/IP 协议细节 | 
|  |      7KevinBlandy      2022-09-09 11:15:55 +08:00  1 我个人觉得 netty 是集并发编程,设计模式,socket 编程,响应式的各种优秀实践于一身的大成。可以好好读一读。 | 
|  |      8DeepRedApple      2022-09-09 11:22:54 +08:00 有 | 
|      9yazinnnn      2022-09-09 11:30:11 +08:00 netty ⬇ vertx ⬇ kotlin ⬇ quarkus ⬇ ⬇ ⬇ ⬇ ⬇ (接受各种 Monad) (拒绝各种 monad) 注重性能 注重云原生 缝合怪 ⬇ ⬇ ⬇ ⬇ ⬇ haskell clojure rust go .net/F# ⬇ ⬇ 范畴论 scheme/racket | 
|      10yazinnnn      2022-09-09 11:32:58 +08:00  6 netty ⬇ vertx ⬇ kotlin- ⬇ quarkus ⬇------------------------⬇--------------------⬇---------------------⬇-------------------⬇ (接受各种 Monad)------(拒绝各种 monad)-----------注重性能---------------注重云原生--------------缝合怪 ⬇------------------------⬇--------------------⬇---------------------⬇-------------------⬇ haskell--------------clojure----------------rust--------------------go----------------.net/F# ⬇-----------------------⬇ 范畴论---------------scheme/racket 这缩进... | 
|      11securityCoding      2022-09-09 13:14:21 +08:00 via Android 网络框架,学学也可以 | 
|      12Jooooooooo      2022-09-09 13:26:00 +08:00 重点要学的其实是 nio 那一套. | 
|  |      13awalkingman      2022-09-09 13:38:12 +08:00 写 java 的程序员有两种,一种是用过 netty 的,一种是没用过 netty 的。 | 
|  |      14xianyv      2022-09-09 13:40:49 +08:00 学了学 netty 的皮毛,只是会用,到现在也没研究源码. 混迹在中小公司中,几乎没有用武之地 | 
|  |      15zoharSoul      2022-09-09 14:01:12 +08:00 没有必要 | 
|  |      16keppelfei      2022-09-09 14:11:24 +08:00 有段时间弄了一个即时通讯的项目,学习了不少,netty 真的很不错。 | 
|  |      17iyaozhen      2022-09-09 14:27:28 +08:00 有必要,你要是高级 JAVA ,不懂这个说不过去 | 
|      18ma836323493      2022-09-09 15:21:44 +08:00 netty in action.  学学手动撸一个出来 | 
|  |      19huang119412      2022-09-09 15:30:07 +08:00 netty 源码其实挺简单的,比 J.U.C 简单。可以研究一下 | 
|      20zr8657      2022-09-09 15:32:12 +08:00 有,学 netty 的过程会复习计算机网络和 IOS 知识,我学完以后对网络有了新的认知 | 
|  |      21carytseng      2022-09-09 16:16:08 +08:00 我熟悉 netty 是从对接一个 tcp 的设备开始的,在工作中学习是最深刻的。 | 
|      22wxlwsy      2022-09-09 20:21:15 +08:00 如果你想研究 netty 底层可以先写点 nio 和 aio 原生代码的非常有用. | 
|      25urnoob      2022-09-09 23:17:26 +08:00 via Android  1 我是一个用过并且看过源码的人,我是这么认为的 netty 要看源码就看下从接受链接到 handler 这一条线就可以了。你只要理解数据是怎么过来的就行,不需要细节。这样有助于你使用它。 这个过程中会涉及到 nio 操作,你可以忽略,转而看下 linux 用 epoll 三函数怎么用会清晰很多。也能学到底层一些东西。 内存分配那块没必要看。 | 
|  |      26rockddd      2022-09-10 15:23:06 +08:00 @choice4 集群实现也简单,业务逻辑上稍微改改就行,根据 channelId 判断长连接是不是连在当前服务实例中。 如果在当前服务实例就正常处理,否则搞个发布订阅的中间件通知给其他实例,redis,zk,mq 都行。 | 
|  |      27mmdsun      2022-09-11 00:18:39 +08:00 不做研发、不造轮子用不上,看你在公司干的活是什么。 当然可以面试提升 B 逼格 | 
|  |      28xuanbg      2022-09-12 10:09:29 +08:00 不想自己造个 nio 的轮子替代 netty ,或者基于 netty 进行二次开发,就没必要系统深入地学习 netty 。 学习任何知识,都要问自己这几个问题,而不是人学亦学。 1 、你学它有什么用没有? 2 、投入的时间和精力能给你带来什么好处? | 
|  |      29diagnostics      2024-08-15 10:16:32 +08:00 @wxw752 #4 netty 本来就是简化网络编程的,怎么简化网络编程这个比较难,要学 IO 模型,网络编程,线程模型,零拷贝等等 | 
|  |      30rockddd      2024-08-15 10:23:36 +08:00 @diagnostics #29 哥们你这个坟一铲子挖哪年去了   |