分布式队列是否适合构建可扩展案件分配系统?架构选型咨询
系统设计咨询:动态扩缩容的用户注册与审核系统
基础功能需求
- 新用户填写信息并上传文件完成注册,生成新案件
- 审核员每日登录后从待处理案件库中选取案件
- 审核员确认文件无误则批准案件,否则驳回
初步设计方案
- 提供
/registerPOST接口:将用户信息存入分片式MySQL数据库,文件存入BLOB存储(在MySQL中更新存储引用) - 注册成功后向分布式队列发送含用户ID的事件,当前考虑Amazon SQS,需了解开源替代方案以避免厂商锁定
- 提供
/auditPOST接口:审核员调用该接口从队列(如SQS)获取一条案件记录,并更新案件状态以防止其他审核员重复获取;若成功锁定案件则处理,否则尝试获取队列中下一条记录 /register与/audit作为独立服务,支持独立扩缩容
核心疑问与问题
队列必要性存疑
是否无需引入队列,直接查询数据库更优?例如执行SELECT Id FROM USER WHERE status = 'Pending' FOR UPDATE。
系统动态扩缩容构建
如何构建可根据注册请求量与审核请求量进行动态扩缩容的系统?
内容的提问来源于stack exchange,提问作者Atul Kumar
相关产品推荐
相关产品推荐

