滴滴二面
上午刚面的滴滴,趁着记得,这会整理发出来。
多个供应商如何互通?
目前没法互通
如何快速的切换到另一个供应商,该供应商是否能够接住这么多流量。什么时候切换。
监课端
客户端指标收集
- 分配供应商的策略时什么
- 增长部分分为哪几个团队?
4个团队,增长包括召回、活跃、拉新
- 营销
- 广告投放
- 检索推荐
- 数据算法策略
- 设计一个微信抢红包的系统
把请求打到kafka里,然后消费kafka,转账,减少redis钱数目
给定一个大账户,大家往里面放钱,每个人可以指定分配的红包数,然后多个人可以抢红包,如何设计。
发红包时拆成n份,放到db里(分库分表),然后每个人来抢时慢慢分,进行事务操作。
发红包时,逻辑重一点,拆红包,按照红包id进行分表,在数据库里创建发红包详情,然后先随机拆成n份,加载到redis缓存里来,使用红包id->list记录该红包队列,然后才告知前端发红包成功。
抢红包时,先根据红包id,查询到红包个数,做本地限流(可以预热),如果超过本地记录的请求个数,直接返回失败。
感觉也可以hang主通过的请求,保证串行消费。例如加个内存锁:synchronized
通过的请求,领取次数不能超过一次。需要做幂等。可以加个userId+红包id的redis key,有效时间1h,避免重复请求。
通过的请求,直接lpop list队列,如果有,则查询db扣领取余额,同时添加一条领取记录(红包id->领取人->领取额度,按照红包id分表,按照user_id分表也插入一条记录,方便用户查询领取了哪些红包),异步转账到余额或银行卡。如果操作失败了,后续进行根据领取记录进行异步重试。
如果list队列已经没有数据,缓存到本地缓存起来,直接告知后续请求失败。
https://www.infoq.cn/news/2017hongbao-weixin?utm_source=related_read_bottom&utm_medium=article
AOP和装饰器有什么区别?
信令断了,vendor通信正常,是否会掐断引擎的正常通信?