WhaleShark(鲸鲨)是一个用 Java 实现的高性能分布式 IM 系统,它支持对接用户自定义端同步方式,目前端同步方式有单端、双端、三端以及无限制
使用到 Netty、Redis、Redisson、RabbitMQ、Zookeeper 等主流技术栈
- Netty 实现高性能消息收发,应用层握手(用户登录登出),心跳检测(挂后台)
- Redis 和 Redisson 客户端实现用户 Session 信息的存储、发布订阅模式实现路由层信息缓存
- RabbitMQ 解耦对接 TCP 网关服务和逻辑层交互
- Zookeeper 注册中心及时感知服务节点上线下线情况
采用 DDD 架构思想搭建各个模块层级,并使用大量设计模式优化架构,使项目可扩展、易阅读 ... ... ...
- 使用策略模式重构用户操作指令逻辑
- 使用状态模式重构用户自定义端同步方式
- 使用 Redis 缓存用户信息的方式模拟路由层,实现跨服务之间的多 Channel 通讯
- 使用 Redisson 发布订阅模式,监听用户登录行为,发送用户下线通知