1.保证消息不丢失,保证消息不重复,保证收发消息不乱序。
2.接口优化 从qps 100+ 到 300+ 的优化 。
3.使用了 protobuf作为消息传递的数据格式 使用 netty 处理客户端的连接与数据接收,使用RabbitMQ投递消息,使用线程池持久化消息与缓存消息, 提高了用户收发消息的速度
4.群聊消息存储使用读扩散,单聊消息存储使用写扩散优化数据库并发性能
5.数据更新使用增量拉取的操作,防止因为数据量过大导致程序崩溃的问题
6.使用 docker-compose 搭建开发 测试 生产服务器环境, 实现容器化部署项目,提高了服务器的可维护性
7.使用signal-protocol协议实现消息的向前和向后安全,保护用户的隐私
8.使用Guava中的RateLimiter实现接口限流提高了系统的稳定性
9.使用sa-token 实现接口的权限认证
10.使用jenkins 配置jenkinsfile构建多分支流水线自动化部署,并使用shell脚本编写docker-compose命令 发布与停止docker容器 提高了开发效率
11.使用xxl-job 管理分布式中的定时任务