GO微服务实战之红包系统
业务模型
2-3 红包数据库表结构讲解
红包序列
红包算法
红包算法逻辑6点要求
微信两倍平均算法
package mainimport ("fmt""math/rand""time"
)//二倍均值算法,count剩余个数,amount剩余金额
// DoubleAverage
func DoubleAverage(count, amount int64) int64 {//最小钱min := int64(1)if count == 1 {//返回剩余金额return amount}//计算最大可用金额,min最小是1分钱,减去的min,下面会加上,避免出现0分钱max := amount - min*count//计算最大可用平均值avg := max / count//二倍均值基础加上最小金额,防止0出现,作为上限avg2 := 2*avg + min//随机红包金额序列元素,把二倍均值作为随机的最大数rand.Seed(time.Now().UnixNano())//加min是为了避免出现0值,上面也减去了minx := rand.Int63n(avg2) + minreturn x
}func main() {//初始10个红包, 10000分 = 100元钱count, amount := int64(10), int64(10000)//剩余金额remain := amount//验证红包算法的总金额,最后sum应该==amountsum := int64(0)//进行发红包for i := int64(0); i < count; i++ {x := DoubleAverage(count-i, remain)//金额减去remain -= x//发了多少钱sum += x//金额转成元fmt.Println(i+1, "=", float64(x)/float64(100))}fmt.Println()fmt.Println("总和 ", sum)
}
2-6 红包系统架构演进概述
3-2 代码架构之how-怎样来设计代码架构
五 业务开发
账户转账流程
GO微服务实战之红包系统相关推荐
- 微服务实战(五):落地微服务架构到直销系统(构建高性能大并发系统)
在现代系统中,特别是互联网软件,通常会涉及到大量用户的并发访问,我们的系统一定要在架构上支持高性能.大并发的访问.一个高性能的系统通常由很多的方面组成,包括数据库高性能.Web服务器高性能.负载均衡. ...
- 微服务实战(六):落地微服务架构到直销系统(事件存储)
在CQRS架构中,一个比较重要的内容就是当命令处理器从命令队列中接收到相关的命令数据后,通过调用领域对象逻辑,然后将当前事件的对象数据持久化到事件存储中.主要的用途是能够快速持久化对象此次的状态,另外 ...
- SpringCloud Alibaba微服务实战(五) - Sentinel实现限流熔断
什么是Sentinel? 请查看文章:SpringCloud Alibaba微服务实战(一) - 基础环境搭建 构建服务消费者cloud-sentinel进行服务调用 服务创建请查看文章:Spring ...
- Spring Cloud 微服务实战笔记
Spring Cloud 微服务实战笔记 微服务知识 传统开发所有业务逻辑都在一个应用中, 开发,测试,部署随着需求增加会不断为单个项目增加不同业务模块:前端展现也不局限于html视图模板的形式,后端 ...
- .net core 微服务_.NET 微服务实战之负载均衡(上)
(给DotNet加星标,提升.Net技能) 转自:陈珙cnblogs.com/skychen1218/p/13327965.html 系列文章 .Net微服务实战之技术选型篇 .Net微服务实战之技术 ...
- .Net微服务实战之技术架构分层篇
一拍即合 上一篇<.Net微服务实战之技术选型篇>,从技术选型角度讲解了微服务实施的中间件的选择与协作,工欲善其事,必先利其器,中间件的选择是作为微服务的基础与开始,也希望给一直想在.Ne ...
- 《ASP.NET Core 微服务实战》译者序
最近,我将<ASP.NET Core 微服务实战>一书由英文翻译为中文.这本书是由清华大学出版社引进的,目前还处于最后的排版校对过程中,现将该书的译者序发表于此. 以下为译者译全文: &q ...
- java 限流熔断_SpringCloud Alibaba微服务实战五 - 限流熔断
简介 Sentinel是面向分布式服务框架的轻量级流量控制框架,主要以流量为切入点,从流量控制,熔断降级,系统负载保护等多个维度来维护系统的稳定性.在SpringCloud体系中,sentinel主要 ...
- 微服务实战系列之SpringCloud Alibaba学习(四)
微服务实战系列之SpringCloud Alibaba: 微服务实战系列之SpringCloud Alibaba学习(一) 微服务实战系列之SpringCloud Alibaba学习(二) 微服务实战 ...
最新文章
- 一文尽览!文本对抗攻击基础、前沿及相关资源
- 一个Ext2+SWFUpload做的图片上传对话框
- 《小印记》源码分享--极光推送服务器篇
- 控制器中添加DB类才可以操作数据库表中的数据
- 太难了~面试官让我结合案例讲讲自己对Spring事务传播行为的理解!
- boost::multi_array相关的测试程序
- flex4 s:Datagrid s:typicalItem
- androidstudio环境配置常见问题解决
- php jquery选中提交,如何使用jquery提交php发布数据
- 有关嵌入式、单片机、51单片机、STM32、的一些概念详解
- TFN RMT 手持式路测仪 5G NR 手持式频谱分析仪
- InfluxDB中Line Protocol理解
- Python数据存取详解
- 【scratch高阶案例教学】scratch黄金矿工 scratch创意编程 少儿编程 手把手教小朋友们从零制作黄金矿工游戏
- 快速批量导出excel超链接
- ListView加载图片错位的问题,解决很简单
- Verilog流水线CPU设计(超详细)
- 五金机电行业智能供应链管理系统解决方案:数智化供应链为传统产业“造新血”
- 中国大学生数学竞赛(非数学专业类)竞赛大纲
- 反编译系列教程(上)
热门文章
- 关于Qt数据库相关开发的一些经验总结
- n个整数,找出连续的m个数加和是最大
- 桔皮加蜂蜜的制作方法?桔皮加蜂蜜泡水喝吗?
- Echarts 绘制单独省份地图
- 【LeetCode】括号(有效括号、括号生成、最长有效括号)
- SCAU8579、SCAU8580、SCAU8581 链式表的基本操作
- 割圆术c语言程序设计,c语言实现割圆术计算圆周率.pdf
- 计算机单片机考试作弊检讨书,关于大学生考试作弊检讨书1000字范文[共7页]
- 【C语言】浮点型在内存的存储
- 计算机人文英语1形考答案,国家开放大学电大《人文英语1》形考任务七试题及答案...