电商项目解决高并发的问题的策略浅谈

前言:

       在项目中解决高并发并非解决其中的某一个环节或点,而是全方位的,系统性的从客户发起请求,请求处理,服务调用,数据访问层层优化,解决高并发。 

1.系统硬件

    提升服务器性能。

    1.1 增加内存容量;

    1.2 更换硬盘;

    1.3 升级处理器;

2.系统软件(架构方向)

    2.1.前端请求到服务器-------反向代理服务器(如nginx),

       2.1.1 反向代理 

      拦截无效的客户请求、恶意请求等,可参考:nginx网络服务器上如何阻止特定用户代理(UA)http://linux.cn/article-5487-1.html;

       2.1.2 访问静态资源,做缓存 

       反向代理服务器不但可以拦截指定的请求,还能够通过配置缓冲功能可以缓存真实Web服务器上的某些静态资源,减轻真实Web服务器的负载压力,可以在反向代理的服务器上缓存某些静态资源,这样的话在反向代理服务器上存在的资源就不用去web服务器上获取,以减轻web服务器的压力。

       在该环节中我们采用了freemarker技术,实现网页静态化,进而实现上述功能,来提高并发。另外,前端请求我们可以采用get请求的方法,实现一些静态资源缓存在浏览器端,避免了用户重复刷新造成的恶意访问。

       NGINX反向代理缓存配置https://blog.csdn.net/lmy_1/article/details/52791275;

       2.1.2 负载均衡

       网站前期使用了nginx代理一台后端服务器,随着网站流量的增多,一台后端服务器无法满足需求的时候,需要配置服务器集群,这时就需要负载均衡配置。负载均衡配置配置策略默认是轮询,轮询策略要求集群中的各服务器性能要一致,同木桶原理;对于性能不一致的,可以配置权重策略。

      负载均衡策略转至https://blog.csdn.net/poisx/article/details/78985010;

    2.2  调用服务---------dubbox分布式服务架构以及消息中间件MQ (activeMQ)

    2.3  数据访问----------redis做缓存以及数据库分库 

小结:

互联网正在高速发展,使用互联网服务的用户越多,高并发的场景也变得越来越多。电商秒杀和抢购,是两个比较典型的互联网高并发场景。虽然我们解决问题的具体技术方案可能千差万别,但是遇到的挑战却是相似的,因此解决问题的思路也异曲同工。

个人整理并发解决方案。

     a.应用层面:读写分离、缓存、队列、集群、令牌、系统拆分、隔离、系统升级(可水平扩容方向)。

     b.时间换空间:降低单次请求时间,这样在单位时间内系统并发就会提升。

     c.空间换时间:拉长整体处理业务时间,换取后台系统容量空间。

posted on 2019-03-30 16:38  技术之路永无止境~  阅读(449)  评论(0编辑  收藏  举报

导航