专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-963-0016      微信咨询  |  联系我们

高容错性商城项用到什么框架_服务器

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/9 1:53:09       共计:3609 浏览

高容错性商城项用到什么框架?

我们先来说高并发吧。

什么是高并发?

高并发是互联网分布式系统架构设计中必须考虑的因素之一,它通常指:通过设计保证系统能够同时并行处理很多的请求。

高并发有哪些指标?

响应时间:系统对请求做出 响应的时间。例如:处理一个HTTP请求需要200ms,那200ms就是响应时间。

吞吐量:单位时间内处理的请求数量。

QPS:每条响应的请求数量。其实这个指标和吞吐量区分不明显。

并发数量:同时承载正常使用系统功能的用户数量。例如:QQ同时在线的用户数量其实也就是并发数量了。

如何提高并发能力?

提高系统的能发能力,主要有两种方式:垂直扩展和水平扩展

垂直扩展

其实就是提升单机的处理能力,一般又有两种方法:

1)增强单机硬件性能

这个方法简单暴力,升级CPU,升级硬盘,升级内存,升级网卡。

2)提升单机架构性能

这个方式就是委婉一点了,我们通过缓存,尽量的减少IO的次数,使用异步的线程处理,增加服务的吞吐量,使用无锁的数据结构,减少响应时间等等。

在互联网飞速发展的时期,提升单机硬件性能往往是最快的方法,因为这个阶段,时间是最包括的,升级硬件是最能够有效解决问题的方式,而且时间成本几乎可以不考虑。

但是这个方法有一个致命的缺点,就是,单机的性能是有极限的,但是用户的增长理论上可以是无限的,所以,解决问题的根源,这个方式并不适用,我们更多的还是选择水平扩展的方式

水平扩展

水平扩展,其实就是增加服务器的数量,从而线性扩充系统的性能,但是,这个就对系统的架构设计有要求了,如何让架构各层能够进行水平扩展的设计,就是系统设计的重点了。

常见的分层架构

常见的分布式架构如上图:

客户端层:浏览器或者手机APP

反向代理层:系统入口、反向代理

站点应用层:实现核心的逻辑,返回html或者json

服务层:这一层可以有,也可以没有,如果我们没有实现服务化,也就没有这个了

数据缓存层:缓存部分数据,加速访问速度,减少数据库的IO

数据库层:固化数据的存储

水平扩展架构实践

反向代理层的水平扩展

其实是通过DBS轮询实现的:DNS-SERVER对于一个域名配置了多个解析IP,每次DNS解析请求来访问DNS-SERVER,会轮询返回这些IP。

当Nginx成为瓶颈的时候,只要增加服务器数量,部署Nginx服务,增加IP,就可以扩展反向代理层的性能,理论上是可以实现无限高并发的。

站点层的水平扩展

站点层的水平扩展是通过Nginx实现的,通过修改Nginx配置,设置多个web后端。当web后端成为瓶颈时,增加web服务器,加入Nginx配置中,就可以理论上实现无限高并发了。

服务层水平扩展

服务层的水平扩展,是通过服务连接池实现的。

站点层通过RPC-client调用下游服务层RPC-server时,当服务层成为瓶颈时,增加服务器,部署到RPC-client下游服务连接中,就可扩展性能了。

数据库层的水平扩展

缓存想要扩展是很简单的,只需要细化缓存的颗粒就行了,例如某一个服务器,缓存哪些类型的数据,我们一般缓存的数据并不会很多,通常都是变化频率不高的数据进行缓存,变化频率高的数据,缓存的意义相对较小。

但是,数据库其实是有极限的,随着我们数据量的增加,数据库的压力越来越大。

一般我们的处理就是,分库分表。

将数据层水平拆分,例如服务器A存储用户数据,服务器B存储订单数据。这样,我们就可以实现服务器的水平扩充。

但是有时候,一个表,例如订单表的数据量就会非常的大。

我们又会对这样类型的表进行垂直的拆分。

将表分为order1,order2……

通过orderid的范围来确定应该查询那个数据库。

例如:order1库,存储orderid1—1kw

order2库,存储orderid1kw-2kw

这样,我们就能很好的对数据进行路由,并且数据均衡性较好,也容易扩展。

小结

其实,能够实现高并发的技术很多。

好像我们在做秒杀的时候,其实我们从客服端、站点层,到服务层,每一层都有一个过滤,让无效的访问能够被过滤,减少数据层的IO,其实,数据层是最容易产生瓶颈的一层,所以,我们的所有工作,就是尽可能的少对数据层进行访问,提高吞吐量。

所以,类似队列,缓存,负载均衡都是一些常用的手段。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:如何找到适合需求的Python库_python | ·下一条:华为安全检测怎么关_服务器

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有