分享即时通讯开发Netty3.x升级Netty4.x遇到的坑

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

先来看看Netty 3.x版本现状

根据对Netty社区部分用户的调查,结合Netty在其它开源项目中的使用情况,我们可以看出目前Netty商用的主流版本集中在3.X和4.X上,其中以Netty 3.X系列版本使用最为广泛。

Netty社区非常活跃,3.X系列版本从2011年2月7日发布的netty-3.2.4 Final版本到2014年12月17日发布的netty-3.10.0 Final版本,版本跨度达3年多,期间共推出了61个Final版本。

 

果断升级还是保守忍了?

相比于其它开源项目,Netty用户的版本升级之路更加艰辛,最根本的原因就是Netty 4对Netty 3没有做到很好的前向兼容。

由于版本不兼容,大多数老版本使用者的想法就是既然升级这么麻烦,我暂时又不需要使用到Netty 4的新特性,当前版本还挺稳定,就暂时先不升级,以后看看再说。

坚守老版本还有很多其它的理由,例如考虑到线上系统的稳定性、对新版本的熟悉程度等。无论如何升级Netty都是一件大事,特别是对Netty有直接强依赖的产品。

从上面的分析可以看出,坚守老版本似乎是个不错的选择;但是,“理想是美好的,现实却是残酷的”,坚守老版本并非总是那么容易,下面我们就看下被迫升级的案例。

升级Netty 4.x其实是被迫的

除了为了使用新特性而主动进行的版本升级,大多数升级都是“被迫的”。下面我们对这些升级原因进行分析。

    公司的开源软件管理策略:对于那些大厂,不同部门和产品线依赖的开源软件版本经常不同,为了对开源依赖进行统一管理,降低安全、维护和管理成本,往往会指定优选的软件版本。由于Netty 4.X 系列版本已经非常成熟,因为,很多公司都优选Netty 4.X版本。
   

基于SpringBoot+Netty分布式开源的即时通讯系统项目,附源码地址! 最近公司开发需要用到 IM 系统,自己开发的话需要耗费较多时间和精力。于是我们考虑在开源项目的基础上二次开发,我们对比了较多开源方案之后,选择了CIM[1]。 项目简介 CIM(CROSS-IM)项目是面向开发者的即时通信系统,项目基于目前比较流行的 SpringBoot 进行构建(项目依赖的Spring Boot 版本为 1.5.x ,可以自行升级到最新稳定版本),基于 Netty 进行网络通信。利用Redis来存放客户端的账户/状态(是否在线)/路由等信息,同时使用Zookeeper来完成服... 阅读详情

相关推荐

附源码!SpringBoot+Netty分布式即时通讯系统!

最近公司开发需要用到 IM 系统,自己开发的话需要耗费较多时间和精力。于是我们考虑在开源项目的基础上二次开发,我们对比了较多开源方案之后,选择了CIM[1] 。 项目简介 CIM(CROSS-IM)项目是面向开发者的即时通信系统,项目基于目前比较流行的 SpringBoot 进行构建(项目依赖的Spring Boot 版本为 1.5.x ,可以自行升级到最新稳定版本),基于 Netty 进行网络通信。利用Redis来存放客户端的账户/状态(是否在线)/路由等信息,同时使用Zookeeper...

weixin_48673251的博客 3888

玩转Netty – 从Netty3升级Netty4

这篇文章主要和大家分享一下,在我们基础软件升级过程中遇到的经典Netty问题。当然, 官方资料 也许是一个更好的补充。另外,大家如果对Netty及其Grizzly架构以及源码有疑问的,欢迎交流。后续会为大家奉献我们基于Grizzly和Netty构建的RPC框架的压测分析,希望大家能够喜欢! 好了,言归正传~ 依赖 Netty团队大概从3.3.0开始,将依赖坐标从 dependenc

小萍萍的博客 8580

SpringBoot实战:若依系统集成MobileIMSDK的完整避指南(含源码下载)

本文是一份详细的SpringBoot实战指南,重点讲解如何将MobileIMSDK服务端集成到若依(RuoYi)后台管理系统中。内容涵盖从项目环境准备、依赖冲突解决、源码整合与包路径重构,到SpringBoot化启动配置、用户体系对接以及常见性能问题排查的全过程,旨在帮助开发者高效完成IM功能集成并规避常见陷阱。

nginx7reverse的博客 695

netty3升级4后由于线程模型的变化引起的问题

1|Netty的特点 Netty入门比较简单,主要原因有如下几点: Netty的API封装比较简单,将复杂的网络通信通过BootStrap等工具类做了二次封装,用户使用起来比较简单;Netty源码自带的Demo比较多,通过Demo可以很快入门;Netty社区资料、相关学习书籍也比较多,学习资料比较丰富。 但是很多入门之后的Netty学习者遇到了很多困惑,例如不知道

yine的专栏 2916

Netty入门01】Netty版本选择以及入门样例

Netty版本选择与入门。

qq_40720500的博客 3703

Netty —— 概述

文章目录原生 NIO 存在的问题官网介绍Netty 官网说明Netty 的优点Netty 版本说明 原生 NIO 存在的问题 1)NIO 的类库和 API 繁杂,使用麻烦;需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等 2)需要具备其它的额外技能;要熟悉 Java 多线程编程,因为 NIO 编程涉及到 Reactor 模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的 NIO 程序 3开发工作量和难度都非常大;例如客户

Woo_home的博客 5225

GitHub上标星68k,基于SpringBoot+Netty分布式开源的即时通讯系统项目

最近公司开发需要用到 IM 系统,自己开发的话需要耗费较多时间和精力。于是我们考虑在开源项目的基础上二次开发,我们对比了较多开源方案之后,选择了CIM[1]。 项目简介 CIM(CROSS-IM)项目是面向开发者的即时通信系统,项目基于目前比较流行的 SpringBoot 进行构建(项目依赖的Spring Boot 版本为 1.5.x ,可以自行升级到最新稳定版本),基于 Netty 进行网络通信。利用Redis来存放客户端的账户/状态(是否在线)/路由等信息,同时使用Zookeeper来完成服...

一入Java深似海 6748

GitHub标星68k,基于SpringBoot+Netty分布式开源的即时通讯系统项目

最近公司开发需要用到 IM 系统,自己开发的话需要耗费较多时间和精力。于是我们考虑在开源项目的基础上二次开发,我们对比了较多开源方案之后,选择了 CIM[1] 。 项目简介 CIM(CROSS-IM)项目是面向开发者的 即时通信 系统,项目基于目前比较流行的 SpringBoot 进行构建(项目依赖的Spring Boot 版本为 1.5.x ,可以自行升级到最新稳定版本),基于 Netty 进行网络通信。利用Redis来存放客户端的账户/状态(是否在线)/路由等信息,同时使用Zookeeper来完成服

m0_67505824的博客 3413

6k+点赞的SpringBoot+Netty分布式即时通讯系统!爱了爱了!

最近公司开发需要用到 IM 系统,自己开发的话需要耗费较多时间和精力。于是我们考虑在开源项目的基础上二次开发,我们对比了较多开源方案之后,选择了 CIM[1] 。项目简介CIM(...

singwhatiwanna 542

基于netty的在线聊天室,支持群聊和私聊——【一】基本功能介绍和nginx配置

netty虽然可以实现聊天室的功能。但完整的坐下来,还是要自己去封装很多东西,尤其是数据交互的协议,消息的分发等。这一点就比spring 的websocket over stomp差远了 具体效果 支持1v1聊天和多人聊天,自己创建群聊,具体演示地址点我 登陆界面: 密码不用输入 然后是主面板: ...

siwash的博客 1873

springboot redis 断线重连_6k+点赞的SpringBoot+Netty分布式即时通讯系统!爱了爱了!...

前言最近公司开发需要用到 IM 系统,自己开发的话需要耗费较多时间和精力。于是我们考虑在开源项目的基础上二次开发,我们对比了较多开源方案之后,选择了 CIM[1] 。项目简介CIM(CROSS-IM)项目是面向开发者的 即时通信 系统,项目基于目前比较流行的 SpringBoot 进行构建(项目依赖的Spring Boot 版本为 1.5.x ,可以自行升级到最新稳定版本),基于 Netty 进行...

weixin_39815286的博客 311

技术干货:从零开始,教你设计一个百万级的消息推送系统

1、点评 本文主要分享的是如何从零设计开发一个中大型推送系统,因限于篇幅,文中有些键技术只能一笔带过,建议有这方面兴趣的读者可以深入研究相关知识点,从而形成横向知识体系。 本文适合有一定开发、架构经验的后端程序员阅读,文内个别技术点可能并非最佳实践,但至少都是生动的实践分享,至少能起到抛砖引玉的作用。希望即时通讯网本次整理的文章能给予你一些启发。 学习...

weixin_33994444的博客 748

【一篇入魂】项目从netty3升级netty4之前你需要了解的

Netty3从2016年的3.10.6.Final之后就再没有新版本了,公司项目用的netty3,最近在升级netty4,下面我们先了解下netty3netty4的不同之处吧。 项目结构的改变 Netty的包名从 org.jboss.netty 改成 io.netty, 因为 我们不再是JBoss.org的一份子了. 二进制的 JAR 文件被分成多个模块, 这样用户可以从类路径中排除不需要的特...

jiaodaguan的博客 1660

Netty指南

Netty指南

kunlong-luo的博客 2015

Netty官方 入门示例详解

官方网站下载 : https://netty.io/downloads.htmlMaven 依赖可以从 Netty 官网下载页中获取:https://netty.io/downloads.html使用依赖环境如果使用 Maven 进行项目开发管理,则 Netty 也提供了 Maven 依赖。Maven 依赖可以从 Netty 官网下载页中获取:https://netty.io/downloads.html,如下所示:io.nettynettyX.Y.Z.Qcompile。

2401_86401065的博客 1974

Netty版本升级血泪史之线程篇

1. 背景 1.1. Netty 3.X系列版本现状 根据对Netty社区部分用户的调查,结合Netty在其它开源项目中的使用情况,我们可以看出目前Netty商用的主流版本集中在3.X和4.X上,其中以Netty 3.X系列版本使用最为广泛。 Netty社区非常活跃,3.X系列版本从2011年2月7日发布的netty-3.2.4 Final版本到2014年12月17日发布的netty-3.1...

weixin_34115824的博客 728
上一篇: 聊天软件开发之Netty3.x VS Netty4.x的线程模型总结
下一篇: 基于Netty实现即时通讯开发海量推送
wecloud1314
博客等级 码龄5年 2493粉丝 649原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值