首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用.NET Core实现一个类似于饿了吗的简易红包功能

点餐结束后,会有一个好友分享红包功能,虽说这个红包不能提现,但却可以抵扣点餐费用,对于经常点餐的人来说,直接用于抵扣现金确实是很大的诱惑,在点餐之后所获得的那个红包,必须要分享出去才能。...那么如果自己也想实现以下抢红包功能,需要说明的是,本文所描述的红包功能更多的关注与随机红包的生成,至于高并发、数据一致性等问题,本文暂未涉及,以下是本文所讨论的两个技术点: 不同的消费金额获取的红包总额不同...,消费金额越大,红包总额就越大,红包总数也就越多; 假设有一天,有一种需求是,需要保证参与抢红包的人获得的红包金额在平均数附近波动,也就是尽量的服从正态分布; 功能实现 本文描述的场景,所涉及到的金额以分为单位...消费后红包的初始化 需求重点,用户分享出去的红包总额跟消费总额成正比,可以分的子红包个数也与消费总额成正比。...随机红包的生成时机及处理 随机红包的生成可以在抢之前生成也可以在抢的过程中确定,一般而言,很多时候红包会在抢的过程中动态的实际分配,不过在本文中,红包在用户分享成功后会预先生成,主要原因是为了更好地处理处理数据

82120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    完中台再微服务

    两者的命运似乎是所有技术新词的缩影:先谈,再建,后,最后平静。...在《中台是什么》[1]中提出,“效能下限”与“创新上限”就像翘翘板,产生了哑铃效应,而中台则是追求效能的极致,同时却也降低了创新上限 建中台是为了效能,中台是为了创新。...以阿里为代表的大厂对中台真是高举高打,但看看微服务,可没哪个大厂高喊要拆掉微服务,可见他们俩还是有本质差别的。 更神奇的是,不管是拆分微服务还是拆掉微服务,本质需求却是一致的:提升效能。...在横向角度,单体架构也支持以功能、技术等维度划分,拆分成各个模块,以便代码重用和管理,甚至提取出各种形体组件,如jar 那微服务解决了哪些效能问题?...不管是建,还是。都是适时的选择。架构只有顺应环境才能生存,最大化业务价值。

    60020

    开发说做了性能优化,到底做了啥

    连接-浏览器发起http请求,和服务器建立连接通信 4、服务器处理请求-服务端返回数据 5、浏览器接受响应-浏览器根据http返回状态码,作出相应动作 6、浏览器渲染页面-根据规则解析html,css,js...按需加载文件 当我们访问一个页面地址时,浏览器会按照代码所需的文件,请求文件并下载在计算机中,只有页面所需的静态文件比如css、js 正常加载回来时,页面才能正常渲染,否则可能会出现白屏,影响用户体验。...使用cdn来存放html、css、js、图片等前端静态资源,也是一种缓存优化方式。 cdn是一个为了使用户就近获取内容,提高资源访问速度的一种内容分发网络,主要由内容分发技术和内容缓存设备组成。...举个例子:2015年春晚的摇一摇红包。我们来看下摇一摇红包里面有几个功能: 摇红包->红包->红包实时入账 这个功能一开始时,逻辑是这样的:用户摇一摇,红包后,红包是实时入账的。...但是由于参与人数较多,很可能会造成网络拥塞,许多用户可能连摇一摇红包界面都进不去,为了减少请求次数,缓解服务器压力,后来采取了优雅降级的方案,把红包实时入账功能改成异步的形式,红包金额在7天之内入账,这样金额就可以分批入账了

    78230

    庆元宵微信红包封面(赠送红包封面)

    题图摄于广州市天河区 - 异木棉‍ 和去年一样,原本希望在农历新年前给 亨利笔记 公众号的读者赠送一个小福利:定制版红包封面。...怎奈碰上了十分较真,甚至到了非常教条的审批人员,硬是说我提交的封面违规,于是开始了一场跨年度的 提交-审批-拒绝 的反复拉锯,从年三十开始,一直到年初六才获得批准,已经错过发红包的最佳时间。‍...审批人员需要我提交在红包封面中使用照片的著作权证书和作品登记证,就是题图这张异木棉照片。...其时已是年初六了,早已错过了年三十和初一的红包高峰期。 既然被批准了,我就发出来送给大家吧,当作庆元宵的福利吧。喜欢的朋友拿去,不谢。也祝大家新年大吉,身体健康,工作进步,事事顺利!...如果已领完,可后台回复“红包”获取封面。‍‍‍‍ ---- 要想了解云原生、机器学习和区块链等技术原理,请立即长按以下二维码,关注本公众号亨利笔记 ( henglibiji ),以免错过更新。

    2.1K20

    Java 红包算法

    答:微信金额是的时候实时算出来,不是预先分配的,采用的是纯内存计算,不需要预算空间存储。。 采取实时计算金额的考虑:预算需要占存储,实时效率很高,预算才效率低。 2....2015年的红包和抢是分离的,需要点两次,因此会出现抢到红包了,但点开后告知红包已经被领完的状况。进入到第一个页面不代表抢到,只表示当时红包还有。 分配:红包里的金额怎么算?...红包的设计 答:微信从财付通拉取金额数据郭莱,生成个数/红包类型/金额放到redis集群里,app端将红包ID的请求放入请求队列中,如果发现超过红包的个数,直接返回。...答:一个红包只占一条记录,有效期只有几天,因此不需要太多空间。 8.询红包分配,压力大不? 答:抢到红包的人数和红包都在一条cache记录上,没有太大的查询压力。 9.一个红包一个队列?...每领一个红包就更新数据么? 答:每抢到一个红包,就cas更新剩余金额和红包个数。 13.红包如何入库入账? 数据库会累加已经领取的个数与金额,插入一条领取记录。入账则是后台异步操作。

    1.5K65

    红包随机算法&微信群红包随机算法

    为活跃年会氛围,年会直播间会有抢红包环节。因产品要求,红包金额要随机生成,所以这里涉及到指定红包总额、数量和最大最小值情况下如何生成红包金额。...可以看出,红包随机金额生成的输入是一个四元组 ,其中 sum 是红包总额,num 是红包数量,min 和 max 分别是红包最小最大值。...2.参考微信群红包算法 本质上,这和微信群红包没什么区别,发出一个固定总金额的红包,指定红包数量,那么随机分配红包金额时需要满足哪些规则?...(1)所有人抢到金额之和等于红包总金额,不能超过,也不能少于; (2)抢到的红包金额至少是一分钱; (3)要保证抢到红包的人获取到的红包金额是随机的。...下面以 JS 为例,给出实现。

    7.1K20

    解密微信红包算法及抢红包案例实现

    前言微信红包大家应该不陌生吧,别看小小的一个红包,涉及到技术涵盖很多方面的,比如如图所示,用户发一个红包,会涉及发红包红包存储,红包拆分,抢红包等流程。...微信红包设计流程依照发红包红包拆分,抢红包的流程来涉及整个红包流程,采用什么数据结构进行红包设计,由于抢红包,是高并发的,并且响应也要及时,所以采用Redis非关系数据库来设计,是比MySQL好,主要...红包算法:红包算法其实有很多,但是比较合理的可以采用二倍均值算法代码实现二倍均值算法实现红包二倍均值,字面也是是红包平均金额的两倍,为了保证随机,取随机区间,最大值为平均金额的两倍,所以最后公式如下...发红包主要是将红包得到的结果,也就是红包总金额totalMoney拆分为redPackageNumber个子红包,保存到list结构里面,并且设置过期时间 @RequestMapping(value...= "/send") public String sendRedPackage(int totalMoney, int redPackageNumber){ //1 红包,将红包总金额

    71310

    为什么微信红包长这样?

    点击后红包上下拆开,过渡展开更多信息。和用户认知一致,就会觉得顺畅自然。 ? (收红包红包为啥要“转金币”?...红包包好后,会过渡包红包动画再选择好友。因为发红包跟转账不同,除了钱,还多了一层“封红包”的意味,这也是让用户的所见所感符合他预设的认知。 不是说了要保证让用户最简单爽快的红包吗?...为什么不直接在气泡上,而要先打开一个具体的红包,再点击去?...这看起来是步骤多了,但是这里可以满足用户: ► 印证正确的心智模型:一递一接一; ► 重现现实中的仪式感; ► 用户的控制权:与不代表了用户接不接受这个红包。决定权在于用户。...为什么红包的过程是金光闪闪的“转金币”,而不是“转菊花”? ?

    1.6K40

    微信红包后台系统设计

    一个发红包的流程经过抽象可以得到如下路径:包 -> 发 -> 抢 -> 微信红包的核心知识如下: 包红包:系统给每个红包分配一个唯一ID,也就是发红包的订单号,然后将红包发送给用户,红包的个数,...红包红包是整个发红包流程最复杂的一个操作,需要查询这个红包红包订单,判断用户是否可以包,计算本次可拆到的红包金额。记录抢红包流水。...最后的红包过程类似于一个秒杀活动的过程,需要做好库存扣减和秒杀记录的操作。更新库存就是更新红包发送的订单,写入秒杀记录就是写入红包领取的信息流水。还需要以用户为中心记录用户整体的红包领取记录。...最后调用支付系统将红包后的金额转入用户零钱中,成功之后更新抢红包的订单状态为转账成功。 ? 架构 接下来我们在了解下微信红包的整体架构: ? 可用性 影响系统可用性的指标有哪些呢?...DB,系统增加了server服务器同部署的memcached,用于控制同一个红包请求并发数,用于请求队列过载降级。

    7.7K33
    领券