架构与思维:秒杀和竞拍的业务架构,永不过时的话题
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
1 互联网架构越来越复杂?为啥感觉互联网架构越来越复杂了,早期我们的系统,可能也就那么少部分人使用,大都是一些后台管理系统。
但是随着互联网的普及和用户的激增,为了应对流量增量带来的各种问题,我们的架构体系衍生出很多强大的技术方案。 2 什么是秒杀/竞拍业务秒杀业务也是随着互联网电商的发展而不断普及的,我们来看看普通业务和秒杀业务的区别 2.1 普通的业务
2.2 秒杀/竞拍业务只有少量的数据,却会在集中的时间段被一批人看到和抢购,集中式的高频读写。 典型秒杀/竞拍业务案例:
这些业务场景有如下技术难点:
所以,一个优秀的秒杀业务架构,在现在的互联网业务中,是一个永不过时的话题 3 如何优化这边只针对几个对秒杀业务有效改进的点做展开,什么集群动态扩容、流量控制、弹性伸缩、智能限流啊,可以参考我的这篇文章《千万级流量冲击下,如何保证极致性能》。 3.1 清除无效请求尽量在前面就把一些无效请求给清理掉,所以这些操作Web前端 或者 App Client端做就行了,越前端越好,尽量不要伤害到服务端,比如:
3.2 服务端+缓存层做高效原子操作公共数据做缓存 原子操作保证秒杀的计数
队列保证请求有序进入
这里 mystream 是 Stream 的名称,* 表示让 Redis 自动生成一个唯一的消息 ID。field1 value1 和 field2 value2 是消息的内容,你可以根据需要添加任意数量的字段。 扩展阅读 3.3 数据层做终兜底经过上面的保证之后,到数据层的量就很少了,大概率就是你定额的商品数量同等的数量。 3.4 全球式业务,单元化处理有些人可能会说,我的商品全球售卖,那我的缓存中心、数据中心放哪里,如果放中国,那跨地域跨机房访问,在0.1微妙都能决定我是不是买得到,欧洲的客户铁定抢不到库里南了。 A/B中心都有这样的缓存或者数据结构,配置中心统一下发配置。然后在各自的单元里面玩耍,互不干预。 秒杀业务千万不要想着跨地域+跨机房,用户存在不公平性。 4 写在最后
该文章在 2024/7/22 10:45:43 编辑过 |
关键字查询
相关文章
正在查询... |