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

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

    一、拆分

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

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

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

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

    二、缓存

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

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

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

  • 相关阅读:
    [Luogu P3626] [APIO2009] 会议中心
    杭电 1869 六度分离 (求每两个节点间的距离)
    杭电 1874 畅通工程续 (求某节点到某节点的最短路径)
    最短路径模板
    杭电 2544 最短路径
    POJ 1287 Networking (最小生成树模板题)
    NYOJ 1875 畅通工程再续 (无节点间距离求最小生成树)
    POJ 2485 Highways (求最小生成树中最大的边)
    杭电 1233 还是畅通工程 (最小生成树)
    杭电 1863 畅通工程 (最小生成树)
  • 原文地址:https://www.cnblogs.com/ptw-share/p/6776090.html
Copyright © 2011-2022 走看看