《亿级流量网站架构核心技术》---高并发

1、应用级缓存

    1.1、缓存简介

          让数据  更 接近  使用者;

          目的 让访问速度更快;

          工作机制:从缓存读取数据,如果没有,再从慢速设备读取实际数据  并 同步到缓存;

            eg:CPU读取数据:CPU--->L1/L2/L3--->内存--->磁盘;

              maven: 本地仓--->中央仓--->远程仓;

    1.2、缓存命中率

          从缓存读取次数 / 总读取次数(缓存+磁盘);

          非常重要的监控指标,监控此指标看缓存是否工作良好;

    1.3、缓存回收策略

          a,基于空间

          b,基于容量

          c,基于时间

              TTL(Time To Live):存活期,从创建开始  到  到期 的时间段;

              TTI(Time To Idle):空闲期,缓存多久没被访问 即失效;

          d,基于Java对象引用

              a,软引用:

              b,弱引用:

          e,回收算法

              使用基于空间、容量的缓存  会使用一定的算法移除旧数据:

                  FIFO:先进先出

                  LRU(Least Recently Used):使用距离现在最久的那个被移除; 

                  LFU(Least Frequently Used):使用频率最低的被移除;

    1.4、Java缓存类型

        I、概述

            Guava Cache

                只提供堆缓存,小巧灵活,性能最好;

            Ehcahe

                提供了 堆缓存、堆外缓存、磁盘缓存、分布式缓存;

                缺陷:API不完善;

            Map DB

                嵌入式Java数据库引擎 和 集合框架;

                提供了Maps、Sets、Lists、Queues、Bitmaps支持,还支持ACID事务、增量备份,支持堆缓存、堆外缓存、磁盘缓存; 

          a, 堆缓存:

              存储在堆内存种,避免序列化,可以使用Guava Cahce、Ehcache、Map DB实现;

          b, 堆外缓存:

              存储在堆外内存,需要序列化,使用Ehcache、Map DB实现;

          c, 磁盘缓存:

              存储在磁盘上,JVM重启数据还存在,可以使用Ehcache、Map DB实现;

          d, 分布式缓存:

              以上为进程内缓存、磁盘缓存;

              如果存在多JVM会有一些问题:单机容量、数据一致性、缓存命中率低;

              可考虑使用分布式缓存实现:eg:redis实现分布式缓存:

        II、案例

          a,多级缓存

             先查找堆缓存、没有再查找磁盘缓存,Map DB实现:

 

2、HTTP缓存

    2.1、简介:

         浏览器缓存:

    2.2、如何在Java应用层控制浏览器缓存:

           

3、多级缓存

    3.1、

 

4、连接池、线程池

    4.1、池化 :通过  复用技术  提升性能;

                         

                 

          

     

posted on   anpeiyong  阅读(281)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-01-21 因特网中最重要的5种硬件
2019-01-21 相关概念
2019-01-21 Linux---命令

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示