前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >电商交易高并发和高可用技术(一)

电商交易高并发和高可用技术(一)

作者头像
35岁程序员那些事
发布2020-02-24 12:58:58
1K0
发布2020-02-24 12:58:58
举报

电商交易属于核心业务,比如有这么一个场景同一个商品有1000个库存,那么现在有10000个人同时买这个商品,那么在保证这个1000个库存商品全部卖光的前提下,那么交易后台如何保证这10000个人中必须要最多只有1000个人购买成功,极端情况下也可以少于1000个人,反正就是不能超卖。

分析这个场景如下:并发量是10000,交易都是同时到达后端,交易服务是集群部署,会根据服务端负载均衡(Nginx)到不同的server。

解决这个场景的高并发技术和高可用技术如下:

1.高可用架构技术

隔离技术:

线程隔离,交易请求网关肯定不止交易这一个业务接口,还有一些非核心业务接口,那么整个系统区分核心线程池和非核心线程池,在内存和系统核心数足够大的情况下,二者之间是会形成故障隔离的,这里可能就需要使用线程亲和性,将核心线程池绑定到固定的cpu核心数上,比如服务器是32核心,可以分配16个核心给核心线程池,那么这16个cpu就只会处理交易业务,做到充分利用多核cpu的资源。

进程隔离,系统拆分

集群隔离,单实例无法满足交易业务,需要服务化技术,通过部署多个服务形成服务集群,提升系统容量,交易系统集群和其他非核心业务集群隔离

还可以在核心交易业务加一层网关服务集群部署,专门用于派发交易请求(master),实际执行交易的worker可以分布式部署,在流量洪峰下,可以在线扩容worker,提升交易系统的tps。

机房隔离,本机房服务只能调用本机房服务,如果机房服务出现故障,可以自动的切换到对等机房。

读写隔离,和mysql架构类似,读写分离。

动静隔离,静态页面和数据尽量和动态数据隔离,比如热点商品信息缓存,这个是和交易业务相关的。

热点隔离,热点就意味着高并发,在高并发的场景下,要保证高可用性,就必须隔离热点请求,快速的削峰。

使用Hystrix隔离前端交易http请求,Hystrix是一款针对分布式系统的延迟和容错库,目的是用来隔离分布式服务故障,提供线程和信号量隔离,以减少不同服务之间的资源竞争带来的相互影响,提供优雅降级机制,提供熔断机制让服务交易接口快速的失败,而不是一直阻塞,Hystrix可以阻止级联失败并保证系统弹性、和高可用性。

断路器是分布式架构的标配,Hystrix具备服务降级、服务熔断、线程和信号隔离、请求缓存、请求合并以及服务监控等强大功能。

2.高并发架构技术

缓存为王,队列也为王,10000个并发请求入分布式缓存队列(redis)或者mq(核心系统mq集群,做到核心业务和非核心业务集群隔离),商品库存1000预存入redis,库存扣减都走redis,交易请求走交易网关(master),master负责分配执行交易请求的worker,worker是分布式部署的,会调用真正的交易接口,整个交易链路就起来了。那客户端如果调用了接口就会友好的弹出一个框提示交易进行中,正常500ms左右会提示交易成功或者交易失败,如果交易失败也就会提示交易失败的原因,比如网路问题、没有库存了等等。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构随笔录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档