承接上篇《秒杀系统项目实战(一)电商架构应该是一个什么样子》。我们知道秒杀系统主要是电商整体系统的其中一部分,整个秒杀系统会涉及到电商的:
网络层(负载均衡层) 应用层(应用层和业务层) 持久层(存储层)
在这几层里面我们常用的一些组件有哪些呢?稍微给大家举例下:
网络层(SLB,nginx,LVS,DNS) 应用层(tomcat) 存储层(redis,mysql,mq等等)
在网络层,我们常见的组件依赖主要是slb+nginx(以阿里云为主),这里的slb可以根据具体规格进行购买,nginx是一个高性能的负载均衡代理服务器,假设我们这里的nginx的单机并发量是10W。
应用层我们在java领域主要使用tomcat,tomcat经过简单的优化后假设我们的并发是700。
持久层一般使用redis+mysql的方式,这里假设redis的并发是50000,mysql的并发是1000。
以上每一个部分我们的并发可以大致计算了一下,由于这些组件都部署在单独的服务器上,我们还得看服务器的配置情况评估。因此上面的预估数就算作是每一个组件的并发支撑度。超过后就会发生性能问题。那么如果出现了性能问题,我们一般采用什么方案来处理呢?主要分为以下几个:”
1、系统扩容 可以垂直扩容或者水平扩容,通过增加机器设备,增加组件实例节点可以满足大多数业务场景的需要。 2、缓存 上面我们采用了redis缓存,常见的还有本地缓存,我们可以根据需要进行调整,基于内存读取数据,减小网络IO,也是可以满足大多数业务场景的需要。 3、读写分离 读写分离可以是缓存的读写分离,也可以是数据库的读写分离,可以根据实际需要做一主一从,一主多从,多主多从的方式,可以可以满足的阿多数业务场景的需要。
还没有评论,来说两句吧...