欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

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

时间:2023-06-10
一、首先列举一下需要实现的功能

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了,但是由于不够轻量,就不考虑了

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

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

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

对Netty的简单理解

先上两张Netty的架构图

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。