上周末去百度参加了一场LBS部门的招聘专场,虽然刚换了工作,但是人力资源美眉盛情邀请,而且是周末也不用请假,本着去学习的心态去试了一下。以前去百度面试过几次,面试官给人的感觉还是很nice的,虽然不会像很多外企的面试官会闲到给你讲课,但是会和你一起讨论面试的问题,共同的提高。

        百度招聘,区别于360等新兴创业型公司,更偏重于工程师的设计技能和思维方法。百度招聘不会深入的考察工程师所用语言的特性,陷阱等问题,而更关注考察基本的数据结构算法及其在实际例子中的应用。
一面还是偏向考察基本数据结构的掌握的,问了一些诸如跳跃表的实现,快速排序和堆排序,并发程序的数据同步问题等,现场写了一个单向链表递归反转的函数。
        二面就是偏向考察思维方法了,因为知道我是新浪过来的,问了一个怎样设计一个大V粉丝TOP10排名的服务。另外一个印象比较深的问题就是如何实现秒杀的服务。
这里主要想和大家聊聊秒杀服务的实现方法。
        秒杀服务在日常的互联网生活中非常常见,广告心理学曾近分析过,人们对于免费、低价等字眼的抵抗力往往非常低,所以秒杀是一种成本低廉又行之有效的营销方式。
        当然,从技术上来讲,秒杀对于后端服务同时也是一场噩梦。试想,如果前期宣传工作做得完备,数百万的用户守护在各种终端旁,在同一时刻进行请求,这个流量的峰值将会多么的可怕。
        一个公平的秒杀,会要求请求时间排名靠前的用户会确实的可以进行后续支付等操作,并成功买到秒杀的物品。所卖出的秒杀物品比计划不会多一个也不会少一个。
        因为当时面试的时间比较紧,思路不是很清晰,想了一个取巧的方案。将秒杀的过程分为几个阶段,如点击秒杀,填单,支付等,秒杀这一层只是进行一个大概的人数筛选,比如100个物品的秒杀,接口可以设计为允许1000人左右提交,之后就关闭点击秒杀的接口。在填单和支付的时再根据点击秒杀的排名信息确定是否支付成功。但是这种实现方法的缺陷是有一部分用户秒杀请求成功提交,支付步奏失败了,对这部分用户的用户体验不够好。
        回去之后仔细想了想,其实还有更好得解决方案。可以在提交秒杀请求的时候就确定能不能成功。这个接口需要设计为接收所有秒杀的请求,并在存储中记录一条秒杀记录,如ID,用户名,秒杀提交时间等。提交之后接口会有一个小的延迟,在这个延迟内,后端会有一个离线服务对秒杀的存储数据进行一个整理排名过滤等操作,确实的选出能支付成功的用户列表。秒杀服务在延迟时间后会查询存储的购买列表,看看这个提交的ID在不在秒杀成功的列表中,从而决定是否进行后续的步奏。
        在上一家公司一直也做过秒杀的服务,这也是个遗憾吧,在这里随便谈谈我的想法,还望高手指正~

谈谈如何设计秒杀服务相关推荐

  1. 秒杀限制人群,如何设计秒杀服务的限流策略?

    对于秒杀业务,大家应该比较熟悉了.比如,"某商品原价 1299 元, 双十一整点秒杀价仅 500 元,限量 100 件,先到先得" 等等.通过这段文案我们能够发现,参与秒杀活动商品 ...

  2. 如何设计一个秒杀服务

    什么是秒杀? 在特殊时间点(如京东618,天猫双11)进行的大量商品促销活动,引发大量用户集中访问和下单导致系统遭到巨大压力的考验. 传统业务架构 秒杀的特点和引发的风险 短时间大量用户访问网站,网站 ...

  3. 大神手把手教你设计秒杀架构模型

    中生代技术 链接技术大咖,分享技术干货 全文:4000字 作者:Yrion 原文首发:https://www.cnblogs.com/wyq178/p/11261711.html 前言:秒杀系统相信很 ...

  4. 系统架构设计——秒杀系统架构设计

    摘要 秒杀大家都不陌生.自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见.简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程.从架构视角来看,秒杀 ...

  5. Day437438439.秒杀服务 -谷粒商城

    秒杀服务 一.定时任务-Quartz Cron表达式 执行定时任务需要给一个时间计划,这个时间计划可以用 Cron 表达式来编写 官方文档 Cron 表达式是一个字符串,是用空格分割的六到七个属性. ...

  6. 春招高频面试题:怎样设计秒杀系统?

    前言 高并发下如何设计秒杀系统?这是一个高频面试题.这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识. 秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个 ...

  7. 谷粒商城二十三秒杀服务

    秒杀是每一个电商系统中非常重要的模块,商家会不定期的发布一些低价商品,发布到秒杀系统中,秒杀系统的商品一般会放到首页展示,这样就可以引导用户购买商品. 秒杀的购买流程和普通的购买流程最大的特点就是瞬时 ...

  8. 商城业务-商品秒杀服务

    商城业务-商品秒杀服务 一.秒杀介绍 1.秒杀业务 2.秒杀流程 3.限流 二.秒杀 1.启动前端项目 1).修改coupon的网关 2).vscode代码 2.1).查询.新增秒杀场次 2.2).关 ...

  9. 谷粒商城-分布式高级篇[商城业务-秒杀服务]

    谷粒商城-分布式基础篇[环境准备] 谷粒商城-分布式基础[业务编写] 谷粒商城-分布式高级篇[业务编写]持续更新 谷粒商城-分布式高级篇-ElasticSearch 谷粒商城-分布式高级篇-分布式锁与 ...

最新文章

  1. 前端学习(1951)vue之电商管理系统电商系统之获取父级数据列表
  2. 2014.9.13模拟赛【数位和乘积】
  3. LeetCode 1051. 高度检查器
  4. hdu 5919--Sequence II(主席树--求区间不同数个数+区间第k大)
  5. 服务器没有D盘怎么架设传奇?
  6. 如何使用DOSBox软件编写运行汇编语言程序
  7. css如何把图片设置成梯形,如何用css创建流体梯形图像?
  8. python实现multi函数参数个数不限、返回所有参数乘积_实现multi( )函数,参数个数不限,返回所有参数的乘积。_学小易找答案...
  9. 微信PC端浏览器内置浏览器
  10. 介绍一款最快速便捷的一键重装系统软件,全程只需要十分钟,免激活系统
  11. RGCF:Learning to Denoise Unreliable Interactions forGraph Collaborative Filtering论文解读
  12. Markdown教程--Markdown图片
  13. python中怎么赋值一个数为负无穷_python里面正无穷和负无穷问题?
  14. 全球与中国丁苯乳胶市场应用前景及营销渠道分析报告2021~2026年
  15. 【东信北邮成都研发中心】一年Java开发经验面经
  16. mooc成都工业学院C语言测试,成都工业学院通识公共选修课管理暂行规定
  17. SQL SERVER练习题及答案2
  18. Linux记录-sysctl.conf优化方案
  19. 控制工程基础 董景新_编委读报丨“十大最美公交司机”都是谁;新疆交通消费扶贫花样多;海南邮轮港口海上游航线试点迎来新突破……...
  20. 晚上看了一个知乎评论区,我失眠了

热门文章

  1. 群晖NAS 7.X版搭建博客网站,并内网穿透发布公网可访问 8-8
  2. git命令移动文件夹到另一文件夹
  3. 推荐一个制作卡通头像的网站(超强)
  4. Python学习之CSDN21天学习挑战赛计划之2
  5. dva 脚手架目录分析
  6. pythoon_interview_redit
  7. redis数据库的概述
  8. 立志入行网络或已经初入行的朋友的建议
  9. 每日一个小技巧:1招教你提取伴奏怎么做
  10. 你们对移动端架构有怎样的思考?