1.独立负责项目的后端编码与项目整体的架构设计,与前端用Swagger文档进行协作开发
2.借助微信开发平台API,新用户通过微信扫码关注公众号并登录。后端记录Channel与uid的映射,完成
后续消息推送
3.使用jwt完成token生产及解析,实现握手认证,使用拦截器对黑名单及未注册用户请求拦截
4.自定义业务异常进行全局异常捕获,对全局发放的功能进行幕等设计
5.基于Redisson,封装编程式分布式锁工具。精简加锁操作,规范使用,并避免不当使用带来的问题
6.集中管理项目线程池,采用异步执行优化接口响应速度。确保线程池的异常捕获和优雅停机,使用装饰
器模式给线程设置异常捕获类,将异常信息打印在日志中
7.打造支持Caffeine、Reids和混合的二级缓存框架。特别支持Keys的差集缓存,提升易用性
8.针对消息、成员和会话列表,避免深翻页和频繁变动问题,引入游标翻页机制,约定前后端交互 逻辑,
封装Redis和MySQL两种数据源的翻页工具类,简化
9.针对全员群人数过万,写扩散系数爆炸,用户会话采用推拉结合的方式加载消息
10.优化消息已读未读列表的数据库设计,仅记录用户约定时间线,有效避免消息存储指数级增长
11.项目为集群架构,采用RocketMQ进行消息广播,websocket服务连接消息,实现跨进程的消息推送