zoukankan      html  css  js  c++  java
  • 拆分与缓存 应对产品的高并发高访问问题

      互联网相较于传统软件,更容易遇到高并发,高访问量的问题,因为产品面对的市场更大,人群更多。但技术还是哪些技术,设备还是那些设备,互联网产品应怎样来应对这些问题呢?最根本的办法是,减少高并发和访问。如果单个点无法容纳更多的访问,就要分流到多个点来处理,单步处理太久的就分多步来并发处理。这就是拆分与缓存策略,互联网的很多技术产品都是围绕这两个点来展开的。

    一、拆分

    1、业务拆分,分布式部署,单个服务器完成的业务越少,性能就越好;

    2、数据拆分,数据库单表的容量是有瓶颈的,数据量越大,操作越慢,所以要控制单表的数据库,既然单个表存不了那么多,那就拆分到多个表来存储,并且时刻监控单表的容量,当达到最大值时,还需要作二次拆分或数据新旧迁移分离等。

      至于业务该访问哪个表,就要先通过路由策略来找出对应的数据点来访问。路由表就好比现实生活中证件(身份证、社保卡等)的作用,通过这些证件就知道你是什么人,住在哪里,作什么工作,有什么福利等。将人与人、人与社会的关系集中在一张表、一张卡片上来记录,管理。

    3、环节拆分,将长环节拆分成短环节的组合,并发处理子环节最后再排队归并结果。例如麦当劳点餐是一个长环节,因为通常是要当场选餐,定餐,结账的。通过环节拆分,选餐、定餐可以并发完成,最后结账才需要排队进行。经过这样的拆分处理就可以极大的提升工作效率。

    二、缓存

    1、常访问的数据作缓存、这没什么异义的,数据的二八原则,百分之八十的时间都是在访问百分之二十的数据。

    2、将统计数据、数据的特征结果作缓存。之所以将数据结果作缓存,一是它的容量小,二是这些数据是需要经常被用来作实时业务约束、控制的,例如商品的库存量,就需要在用户下单时实时判断,以免用户超买。

    3、多级缓存,一级缓存是最快的,但也是容量最小的,后面的速度会次之,但容量会更大,具体要看业务上如何均衡了。总之是要减少会数据库的访问,因为数据库的IO会较差,而且数据也较多,访问就相对会慢一点。越慢就越容易引起塞车、崩溃。

  • 相关阅读:
    Go module学习笔记
    java并发基础及原理
    java并发之内存模型
    https理论及实践
    Mysql查询结果导出Excel表
    mysql清空表数据并重置自增ID
    html a标签链接点击闪动问题解决
    rocketmq-console控制台管理界面配置
    nginx多层反代配置变量proxy_set_header
    nginx 实现浏览器文件下载服务
  • 原文地址:https://www.cnblogs.com/ptw-share/p/6776090.html
Copyright © 2011-2022 走看看