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


    前言:

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

    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.空间换时间:拉长整体处理业务时间,换取后台系统容量空间。

  • 相关阅读:
    软件架构实现
    UVa644
    如何理解Hibernate中的HibernateSessionFactory类
    在pcDuino上使用蓝牙耳机玩转音乐
    Java Web----Java Web的数据库操作(三)
    Pylons Controller里面Session.commit()总是出现rollback
    ORACLE的SQL JOIN方式小结
    关于数据库学习进阶的一点体悟
    IO is frozen on database xxx, No user action is required
    ORACLE等待事件:enq: TX
  • 原文地址:https://www.cnblogs.com/java-123/p/10627940.html
Copyright © 2020-2023  润新知