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

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缓存类型:

          概述:

            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实现分布式缓存:

                

                 

          

     

原文地址:https://www.cnblogs.com/anpeiyong/p/12220804.html

时间: 2024-07-28 16:41:08

《亿级流量网站架构核心技术》---高并发的相关文章

jedispool 连 redis 高并发卡死

java端在使用jedispool 连接redis的时候,在高并发的时候经常卡死,或报连接异常,JedisConnectionException,或者getResource 异常等各种问题 在使用jedispool 的时候一定要注意两点 1. 在获取 jedisPool和jedis的时候加上线程同步,保证不要创建过多的jedispool 和 jedis 2. 用完Jedis实例后需要返还给JedisPool 整理了一下redis工具类,通过大量测试和高并发测试的 package com.casp

构建高并发高可用的电商平台架构实践

从各个角度总结了电商平台中的架构实践,由于时间仓促,定了个初稿,待补充完善,欢迎大家一起交流. 转载请声明出处:http://blog.csdn.net/yangbutao/article/details/12242441 作者:杨步涛 关注分布式架构.大数据.搜索.开源技术 QQ:306591368 技术Blog:http://blog.csdn.net/yangbutao 一. 设计理念 1.      空间换时间 1)      多级缓存,静态化 客户端页面缓存(http header中包

java处理高并发高负载类网站的优化方法

一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF.尤其是Web2.0的应用,数据库的响应是首先要解决的. 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降.常用的优化措施是M-S(主-从)方式进行同步复制,将查询和操作和分别在不同的服务器上进行操作.我推荐的是M-M-Slaves方式,2个主Mysql,多个Slaves,需要注意的是,虽然有2个Master,但是同时只有1个是Activ

java架构师、高性能、高并发、高可用、高可扩展、性能优化、集群、电商网站架构

15套java架构师.集群.高可用.高可扩展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布式项目实战视频教程 视频课程内容包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.ZeroMQ.Git.Nosql.Jvm.Mecached.Netty.Nio.Mina.性能调优.高并发.to

高并发电子商务平台技术架构

原文出自:http://blog.csdn.net/yangbutao/article/details/12242441 http://stamen.iteye.com/blog/1525924 我自己的大型B2B和B2C站点原来也是用Hibernate,可是后来不得不换成mybatis, 第一是用Hibernate 因为它封装得太高了.非常多东西是隐式进行的.常常引起问题,非常难定位.毕竟凡事有利必有弊: 第二大型站点肯定不是一个数据库.这点Hibernate是非常麻烦的,用Jdbc或Myba

Linux下配置tomcat + apr + native应对高并发

在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,这时并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来. 一.Tomcat运行模式介绍 Tomcat 有三种(bio,nio.apr) 运行模式,首先来简单介绍下: (1)BIO    BIO(blocking I/O

探索 ConcurrentHashMap 高并发性的实现机制

简介 ConcurrentHashMap 是 util.concurrent 包的重要成员.本文将结合 Java 内存模型,分析 JDK 源代码,探索 ConcurrentHashMap 高并发的具体实现机制. 由于 ConcurrentHashMap 的源代码实现依赖于 Java 内存模型,所以阅读本文需要读者了解 Java 内存模型.同时,ConcurrentHashMap 的源代码会涉及到散列算法和链表数据结构,所以,读者需要对散列算法和基于链表的数据结构有所了解. Java 内存模型 由

Java实现高并发秒杀API--Service层2

今天完成了整个Java实现高并发秒杀API--Service层的学习: 1.接口的编码以及实现类的逻辑编写 2.利用spring ioc对Service进行管理 3.利用spring声明式事务对事务进行控制: 事务主要配置: <!--配置事务管理器 -->    <bean id="transactionManager"        class="org.springframework.jdbc.datasource.DataSourceTransacti

高并发的下的数据库设计

现在都什么年代了,还拿着sql server mysql oracle 读取数据呢,好你们遇到的问题我来给你们解答下 在高并发情况下,谈谈数据库与Redis之间如何进行数据同步(写,读),即能保证业务的完整性,又能提升性能 方式1:数据库保存数据,redis不persistredis启动后,从数据库加载数据不要求强一致实时性的读请求,都由redis处理要求强一致实时性的读请求,由数据库处理写请求有2种处理方式,由数据库处理- 应用先写道数据库,然后更新redis- 应用先写道数据库,然后其它da

构建高并发高可用的电商平台架构实践(上)

构建高并发高可用的电商平台架构实践(上) 一. 设计理念 1.      空间换时间 1)      多级缓存,静态化 客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag) 反向代理缓存 应用端的缓存(memcache) 内存数据库 Buffer.cache机制(数据库,中间件等) 2)      索引 哈希.B树.倒排.bitmap 哈希索