工作罗列

简略:

  • 代码重构 - im优化

  • 频道权限

  • 成员列表 - 百万级优化重构

  • 缓存优化

  • 任务中心

  • 百科

  • 通用竞猜

  • 通用导出功能

项目架构

说明:

  • web端、ios、android端

  • wiki: 提供百科功能

  • user: 用户管理服务

  • moment: 帖子服务

  • im-logic: 聊天服务、频道、房间、权限服务

  • message-center: 系统消息中心

  • msg-callback: 消息回调服务

系统

详情

代码重构-im优化

  • 频道管理

  • 房间管理

  • 权限管理

  • 用户管理

模块拆解

频道权限

内容:

  • 频道权限

  • 房间权限

  • 用户权限

  • 身份组权限

权限设计:

权限列表:

权限概览:

房间权限设计:

权限校验

成员列表

说明:

  • 用户信息

  • 用户徽章

  • 用户身份组

  • 用户第一身份组

  • 身份组排序

  • 身份组是动态增加的

  • 用户在线状态

  • 搜索用户

成员列表缓存设计:

  • 身份组 - 对应人数(每个身份组有多少人进行缓存、用来进行翻页的时候切换不同的身份组)

  • 身份组 - 权重排序(不同身份组可以自定义weight,权重高的可以排在前面)

  • 身份组 - 用户ID管理(不同频道、不同身份组用户ID列表管理 ZSet, 在线的根据时间排在前面)

  • 用户信息缓存

  • 用户第一身份组缓存(Hash 缓存、用来缓存用户第一身份组、因为是有变化规则的,而且用户归属在哪个身份组列表需要第一身份组来确定)

  • 成员列表拉取的时候需要区分,成员只需要出现在第一身份组内即可

场景:

  • 拉取成员列表: 获取身份组排序、获取身份组用户数量、对身份组用户数量按照身份组顺序排序、查询身份组用户Id列表;涉及翻页、跨身份组处理;根据ID列表获取用户列表数据、获取身份组数据

  • 搜索用户:数据库搜索,处理用户第一身份组、频道信息、身份组信息、用户信息;显示即可

缓存优化

任务中心

架构设计

百科

通用竞猜

通用导出功能

  • 分布式导出系统

代码提交和管理流程

总结

获得

  • DDD实战

  • 社区项目实战、频道、房间、权限以及上百万级用户列表设计

  • 高并发、瞬时流量解决方案积累

  • 进一步提升工程化思想、重构能力

  • 项目由最初不稳定到能支持几十万用户、几万用户在线、瞬时几万请求稳定运行

  • 完整的掌握和了解了社区微服务架构产品的运行流程和开发流程