【今日话题】 处理秒杀活动的解决方案 1、1限流,2库存放在缓存中,分散到N台机器,分散压力 3 每台机器使用concurrentHashmap,4 抢中后,放入队列,异步处理 某台机器挂掉,只影响一部分,不会超发 - 召阳 2、redis也不是万能灵药吧,怎么保证redis可靠性?如果是主从,考虑了延迟造成的数据不一致吗?redis存不下怎么办?redis怎么落地? - tiyee 3、库存预分配。集中处理肯定出问题 - sky 4、秒杀时,总量是确定的,redis容量应该可预估 - 召阳 5、主从? - 菜鸟 6、可以集群,每个节点主从 - 召阳 7、一般先保证容量够存 - 菜鸟 8、我觉得数据一致性这个问题,没必要时刻一致。除非库存是个位数 - sky 9、秒杀也不是只存商品信息啊,用户信息怎么存?怎么保证用户信息跟队列里的用户标识是一致的?万一扛不住了,怎么降级处理?怎么记录日志?- tiyee 10、我们是写入文件中 - 召阳 11、那么写日志文件不就成了瓶颈了吗? - tiyee 12、日志也是异步写吗?- 菜鸟 13、当时怕给生产库造成压力,扔队列的同时,写入文件 - 召阳 14、我的意思是,搞技术不能大而化之,一体秒杀就抛个队列,抛个redis出来就完事了 - tiyee 15、最核心的肯定是redis队列, 要不容易超售, redis只存商品id。 没有单实例扛, 一主多从。 关键是抢, 抢到之后的记录不直接写库, 写异步消息。 - Orc_LaoT 16、redis挂了呢? - tiyee 17、这跟一说分布式存储有人就说一致性hash一样 - 随风而过 18、降级方案当时的设计是 mysql,mc 加锁,每次放多少人过来,先update 再select。当时还是申请的 ssd 的myslq,最后没有用上 - Orc_LaoT 19、一主多存在加redis的sentinel - 随风而过 20、秒杀主要是写,写的是master,再多从也没用 - tiyee 21、挂了自动选主吧 - 随风而过 22、写操作高的时候应该用啥呢 ? - Orc_LaoT 23、归并 - tiyee 24、缓存类的就知道 mc redis pika , mc不落地,pika 纯硬盘还是比 redis 差一点儿。 - Orc_LaoT 25、redis如果数据多,挂了加载非常慢 - tiyee 26、比如秒杀场景 分多个实例分别存一部分商品? 用户来了随机分配? 这样多写? - Orc_LaoT 27、redis的话可以用Twemproxy/Codis方案,pre-sharding proxy haproxy - star 28、秒杀的应该数据量有限吧 要不也不叫秒杀了 ,方便说下归并么 或者给个再详细的关键字? 只知道归并排序 - Orc_LaoT 29 、@tiyee 你说的归并具体怎么应用到场景,数据结构是怎样。 - star 30、写入时分配数据标识,均衡或按特征写到不同的实例,后台再异步把实例统一起来,每个实例可以双写 - tiyee 31、实例统一起来 指的是? - Orc_LaoT 32、扫描,根据唯一标识,把数据统一起来 - tiyee 33、写入时分配数据标识,均衡或按特征写到不同的实例- |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|