Go – 高并发抽奖实现
抢红包
-
红包构造定义
id 红包惟一标识 []int 红包金额 应用 sync.Map 示意映射关系: id -> []int
-
业务剖析
发红包: 事后设定红包 id 金额 数量 抢红包: 把红包 id 发送到工作 channel 内,goroutine 监听到工作 channel 内有值,而后随机返回金额
红包构造定义
id 红包惟一标识
[]int 红包金额
应用 sync.Map 示意映射关系: id -> []int
业务剖析
发红包: 事后设定红包 id 金额 数量
抢红包: 把红包 id 发送到工作 channel 内,goroutine 监听到工作 channel 内有值,而后随机返回金额