基于Netty重构消息服务实现万级别即时通讯--待更

本文介绍了需要实现的功能,包括全双工通信、客户端和用户区分、前端框架识别、连接统计、通道隔离、安全认证、心跳机制、Docker部署及万级别并发。在技术选型上,对比了Netty、Undertow和Jetty等框架,最终决定采用Netty,因其异步、事件驱动、轻量级和高性能的优势。Netty的架构设计确保了其在处理高并发时的效率。文章还提到了Netty4作为稳定且性能优异的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、首先列举一下需要实现的功能

1.实现服务端与客户端之间的全双工通信,服务端可以主动向客户端发送消息
2.区分不同客户端
3.区分不同用户
4.区分前端框架
5.服务端对客户端的连接情况统计
6.通道隔离
7.认证健全
8.心跳机制
9.对接docker容器部署
10.实现万级别并发

二、技术调研,开发框架的选择

主流框架分别有

Netty
Undertow
Jetty
Vert.x
Grizzly
spray-websocket
nodejs-websocket/Node.js
Go

由于开发语言限制,只对Netty、Undertow和Jetty进行了调研,听说Tomcat也有NIO了,但是由于不够轻量,就不考虑了

  1. Netty(开源):异步,事件驱动,NIO,轻量级,性能优秀,稳定性好,内存占用低,快速开发且可维护,传输快(零拷贝)
  2. Undertow(红帽公司):NIO,轻量级,性能良好,稳定性好,内存占用略高
  3. Jetty(开源):不够轻量级直接Pass

最终考虑基于Netty框架进行开发

版本选择:Netty5基于AIO,使用了 ForkJoinPool,增加了代码复杂度,但是性能提升并不明显,已被官方遗弃,所以选择官方一直在维护的Netty4,更加稳定,基于NIO性能也足够优秀

对Netty的简单理解

先上两张Netty的架构图
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在外面要叫头哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值