过家家项目:如何设计抢红包

在我的项目“过家家”里,有一个抢红包的功能。功能类似微信抢红包。 抢红包的基本逻辑 v1(低并发)抢红包时实时使用二倍均值法计算,只使用MySQL 1. 红包创建流程 用户发红包时,指定总金额与红包个数 系统将总金额拆分为指定数量的红包 红包数量约束: 最少为 1 个 最多不能超过群成员数量 2. 红包金额分配策略 单个红包:不进行随机计算,抢到即获得全部金额 多个红包:采用二倍均值法进行随机分配 当前用户最大可抢金额 = 剩余金额 / 剩余人数 × 2 实际可抢区间为 [0.01, 最大可抢金额 - 0.01] 下限 0.01 元:保证每个抢到的用户都有收益 上限减 0.01 元:保证剩余红包仍有余额可抢 边际示例:10 元红包 2 人分,第 1 人可抢区间为 [0.01, 9.99] 3. 数据持久化与防刷控制 红包创建后入库存储 发红包限流:同一用户 10 秒内仅允许发送 1 个红包,防止手抖误操作 4. 抢红包并发控制 防重复抢:在 redpacket_grabs 表中建立 (userId, redpacketId) 联合唯一索引,确保同一用户对同一红包仅能抢一次 防超卖:采用数据库乐观锁机制 更新 redpacket 表时,必须同时满足: remaining_count > 0 remaining_amount >= 本次扣减金额 5. 方法缺点 每次请求直接打数据库,导致响应时间没有访问内存快 每次请求都会使用二分均值法计算抢到的金额,并且做超卖判断,比较麻烦 v2 (高并发)红包创建好了就已经固定了抢红包的数量和个数,加入Redis 大致流程 ...

2026-07-25 11:09:53 AM · 2 分钟

过家家项目:我是如何设计亲属称谓计算引擎的? 更新中 

正在更新中

2026-07-11 11:30:58 AM · 1 分钟

过家家项目:一款专注于家庭的应用

开发者警告:这是一个 Alpha 版本 Github 网址: 部分功能仍在测试阶段,稳定性有待验证。请勿擅自用于任何商业用途,仅供学习参考 🏡 SweetHome — 过家家 项目官网:https://www.sweethome.asia 面向家庭的社交与智能生活平台后端 从家庭关系图谱出发,重新定义家人之间的连接方式 功能特性 · 系统架构 · 技术栈 · 模块说明 · 快速开始 · API 概览 · 设计亮点 APP页面展示 ✨ 功能特性 👨‍👩‍👧‍👦 家庭关系管理 家庭创建与加入 — 注册即创建家庭,或通过邀请码/管理员审批加入 亲属关系引擎 — 基于图的 BFS 最短路径算法,自动计算成员间的称谓(爷爷、舅舅、堂姐…),服务端只产出语言无关的 relationCode,本地化由客户端完成 多家庭切换 — 用户同一时刻只属于一个家庭,切换时自动级联退出旧家庭 💬 即时通讯 WebSocket 实时聊天 — 原生 WebSocket(非 STOMP),支持文本/图片/语音/视频/红包消息 Redis Pub/Sub 广播 — 支持多实例水平扩展,消息通过 Redis 频道在各实例间扇出 HTTP 兜底 — WebSocket 断线时降级到 REST 接口发送 未读计数 — 基于游标的消息状态跟踪 💰 电子红包 Lua 脚本保证原子性 — 抢红包操作在 Redis 中原子执行,支持高并发 Redis Stream 持久化 — 红包领取记录先进入 Stream,由后台消费者异步落库 自动过期 — 定时任务将过期红包退款 📍 位置服务 实时位置上报 — 家庭成员位置追踪 电子围栏 — 自定义地理围栏,越界告警(通过极光推送通知) 📸 家庭动态(Moments) 图文/视频动态 — 类似朋友圈的家庭动态 点赞与评论 — 互动功能 公共动态广场 — 跨家庭动态聚合 ❤️ 健康管理 健康指标记录 — 身高、体重、血压,按日追踪 可见性控制 — 每项指标可独立设置对家人公开/私密 每日提醒 — 定时推送提醒记录健康数据 🔐 安全认证 JWT 双 Token — accessToken(15 分钟)+ refreshToken(30 天) 网关统一认证 — 所有请求统一在 Gateway 层鉴权,下游服务信任 X-User-Id 头 RSA 非对称签名 — 仅 auth-service 持有私钥签发,其他服务只持公钥验证 ☁️ 云原生基础设施 Nacos — 服务注册发现 + 配置中心(共享配置) Dubbo — 服务间 RPC 调用(最长 3 跳链路:auth → user → family → chat) Kafka — 事件驱动(缓存失效广播、围栏告警、离线通知、健康提醒) JPush — 极光推送,App 后台时接收告警通知 Caffeine + Redis — 两级缓存,热点数据就近加速 Cloudflare R2 — 对象存储(头像、聊天图片、视频、语音) 🌐多语言支持 ✅ 中文简体 ✅ 中文繁体 ✅ 英语 ✅ 缅甸语(AI翻译,未进行人工测试) ✅ 韩语(AI翻译,未进行人工测试) ✅ 日语(AI翻译,未进行人工测试) ...

2026-07-11 11:29:18 AM · 7 分钟

个人简历

2026-06-14 02:20:24 PM · 0 分钟