Skip to content

基于Netty的分布式可定制的即时通讯组件

Notifications You must be signed in to change notification settings

PualrDwade/IMNetty

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 

Repository files navigation

IMNetty

介绍

IMNetty是一款基于Netty的高性能IM即时通讯组件,支持点对点聊天与群聊,支持定制拓展业务,支持分布式多机部署,支持用户添加自定义通讯协议,广泛适用于项目的基础通讯模块

技术体系

使用Netty作为网络通信框架,使用Redis记录登陆状态与路由信息,使用RabbitMQ解耦,实现分布式聊天队列,使用Zookeeper实现服务注册发现,在网关层实现负载均衡与服务接入

架构

基于Netty的事件驱动非阻塞模型改造的Preactor模型,执行管道流风格,让Netty的IO线程专注于进行网络,让CPU解放出来执行业务逻辑

部署

启动类IMChatServer,在启动成功之后便会将自己注册到zookeeper服务注册中心之中,通过zookeeper实现服务的注册与发现,每个服务实体共享消息队列集群,从而完成分布式的即时通讯基础组件的架构部署

如图:通过zkui可视化监控工具可以看到我们的分布式部署结果

待完善

  • 整合SpringBoot
  • 优化代码结构提取公共配置
  • 客户端负载均衡
  • 统一权限验证网关
  • 客户端登陆状态的会话状态Redis集群
  • 组件化,提高系统接入易用性

About

基于Netty的分布式可定制的即时通讯组件

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published