`
huozheleisi
  • 浏览: 1239471 次
文章分类
社区版块
存档分类
最新评论

快速构建大数据缓存

 
阅读更多

场景:

系统运行于正式环境后,发现时常发生OOMOutOfMemory),通过Windbg dump了几个内存后发现很多缓存对象无法回收【分析过程另起新篇叙述】,于是想到如何处理缓存?

方案:

由于系统中的缓存都是采用Hashtable直接建立key, value来缓存对象,属于Strong Handle类型,当然第一反应就是建立WeakReference,所以就按照此思路重新构建了一下啊缓存

思路:

缓存基类BigCacheItemWeakReference为基础,其他类都是实现各自不同场景下的缓存

类名

用途

BigFastCacheItem

大数据快速缓存,减少创建对象时等待时间

FSCacheItem

文件缓存,大对象无法缓存在内存中时,可以先以文件缓存,需要时,再重新取回数据

LightCacheItem

轻量级缓存:对象可以很容易的创建时,建议采用此类

思想讲玩了,直接看代码吧。

【说明】:代码中很多注释用GhostDoc自动生成,没有进行校验,不能保证其准确性

源码下载:

/Files/AloneSword/AloneSword.Component.Cache.rar

完整文件下载:

http://docs.google.com/View?id=djsssq3_69gkvbmtcp

分享到:
评论

相关推荐

    论文研究-一种基于模板的数据预取和缓存算法.pdf

    针对专题型应用中普遍存在的大数据查询的频繁性和模式固定性特点,提出一种基于模板的数据预取和缓存算法,用于加快数据查询响应速度并减轻服务器端负载压力。通过构建数据查询模板,在触发器被激发时调用模板以构建...

    大数据平台构建:MapReduce运行原理.pptx

    在map端,map的输出先写入缓存,当每次缓存快满时,由缓存“溢写”至磁盘,每次溢写都先进行“分区”,并对每个分区的数据进行“排序”和“合并”(可选)。一般会产生多个溢写的文件,这些文件会在map端先被“归并...

    论文研究-基于缓存回收的成本节约云服务算法研究.pdf

    该方法首先构建了一个混合云部署框架,包含预报和云缓存回收两个基本模块,根据统一的成本模型和改进的MLP自适应调整将窗口大小参数化,按照窗口参数或必需的缓存空间选择出一组在缓存中最近最少使用(LRU)的对象。...

    hadoop大数据实战手册

    2.1 HDFS 缓存与缓存块…………… … … ... .... . . ……..... . . ..….... ...………………………………………. 32 2 .1.1 HDFS 物理层面缓存块… … … ………………… … … …… ………… ……………………...

    数据中台之结构化大数据存储设计.doc

    这也是为何目前大多数企业都在构建数据中台的原因,数据处理的技术已经 是核心竞争力。在一个完备的技术架构中,通常也会由应用系统以及数据系统构成.应用 系统负责处理业务逻辑,而数据系统负责处理数据。 传统的...

    基于微服务的旋转设备状态监测与故障诊断平台,基于微服务框架、多任务调度框架、虚拟缓存框架、消息传递框架实现

    旋转设备健康状态预警平台主要以工业生产企业业务系统数据作为输入,构建基于大数据分析、算法开发,预警模型、监测展示等预警机制的设备健康状态预警大数据平台,实现从预警模型构建到预警信息处理反馈的全流程闭环...

    04_大型电商网站的异步多级缓存构建+nginx数据本地化动态渲染的架构.zip

    很全面的大数据公开课,课件+视频+代码

    基于Spark的ISOMAP算法并行化

    为了实现大数据环境下非线性高维数据的快速降维,提出了一种基于Spark的并行ISOMAP算法.在该算法中,为了快速构建邻域矩阵,设计并实现了基于精确欧式位置敏感哈希的近邻搜索并行算法;为了实现特征值的快速求解,设计并...

    基于django大数据应届生求职系统--lw.zip

    同时,Django还提供了丰富的用户认证、URL路由、缓存机制等功能,帮助开发人员快速搭建稳定、安全、高效的应用。 MySQL数据存储:MySQL是一种成熟的关系型数据库管理系统,广泛应用于各个领域。通过使用MySQL作为...

    大数据开源框架集锦.pdf

    可视化的UI界⾯中⽅便地管理 配置和监控Hadoop以及其它所有相关组件 简单来说将⼗⼏个hadoop开源项⽬集成在⼀起 HDP 基于hadoop⽣态系统开源组件构建的⼤数据分析平台 2 集群管理与监控 Cloudera Manager ⽤于部署和...

    毕设&课设&项目&基于SSM(Spring+Springmvc+Mybatis)框架的电商小项目,使用Maven构建项目.zip

    基于SSM(Spring+Springmvc+Mybatis)框架的电商小项目,使用Maven构建项目,MySQL为数据库系统,Redis的缓存服务器(并不是用的很多)。商城分为后台人员管理界面和前台处理服务器两个方面。实现了登录,邮件注册,...

    Flume零基础应用实战企业全场景解决方案视频教程

    从零开始讲解大数据业务及数据采集和迁移需求,以案例驱动的方式讲解基于Flume构建高容错高可靠的分布式数据采集平台。 课程亮点 1,知识体系完备,从小白到大神各阶段读者均能学有所获。 2,生动形象,化繁为简,...

    实时监控系统,无需Agent,性能集群,兼容Prometheus,自定义监控和状态页构建能力

    实时监控系统,无需Agent...支持对应用服务,应用程序,数据库,缓存,操作系统,大数据,中间件,Web服务器,云原生,网络,自定义等监控阈值告警通知一步到位(邮件微信钉钉飞书短信 Discord Telegarm Slack Webhook)

    xmljava系统源码-jplogiccloud:jplogiccloud微服务架构平台-微服务快速开发脚手架实践(包含微服务架构(监控+分布

    内含功能"麻雀虽小五脏俱全",可以基于平台组件拓展很多产品应用场景的实现(其中涵盖微服务架构(监控+分布式配置+服务熔断+服务资源隔离+服务限流+反爬限制+多级缓存架构等)+大数据(实时计算与存储)+多种对象...

    apache-kyuubi-1.4.1-incubating-source.tgz

    Kyuubi可以在用户级别缓存后台引擎实例,以更好的实现计算资源共享和快速响应,并行处理大量数据的查询并快速返回结果。 批数据处理:Kyuubi提供了SQL接口用于常见的批处理,通常是大型提取、转换、加载(ETL)过程...

    apache-kyuubi-1.4.1-incubating-bin.tgz

    Kyuubi可以在用户级别缓存后台引擎实例,以更好的实现计算资源共享和快速响应,并行处理大量数据的查询并快速返回结果。 批数据处理:Kyuubi提供了SQL接口用于常见的批处理,通常是大型提取、转换、加载(ETL)过程...

    apache-kyuubi-1.5.2-incubating-source.tgz

    Kyuubi可以在用户级别缓存后台引擎实例,以更好的实现计算资源共享和快速响应,并行处理大量数据的查询并快速返回结果。 批数据处理:Kyuubi提供了SQL接口用于常见的批处理,通常是大型提取、转换、加载(ETL)过程...

    apache-kyuubi-1.5.2-incubating-bin.tgz

    Kyuubi可以在用户级别缓存后台引擎实例,以更好的实现计算资源共享和快速响应,并行处理大量数据的查询并快速返回结果。 批数据处理:Kyuubi提供了SQL接口用于常见的批处理,通常是大型提取、转换、加载(ETL)过程...

    apache-kyuubi-1.6.1-incubating-source.tgz

    Kyuubi可以在用户级别缓存后台引擎实例,以更好的实现计算资源共享和快速响应,并行处理大量数据的查询并快速返回结果。 批数据处理:Kyuubi提供了SQL接口用于常见的批处理,通常是大型提取、转换、加载(ETL)过程...

    apache-kyuubi-1.6.1-incubating-bin.tgz

    Kyuubi可以在用户级别缓存后台引擎实例,以更好的实现计算资源共享和快速响应,并行处理大量数据的查询并快速返回结果。 批数据处理:Kyuubi提供了SQL接口用于常见的批处理,通常是大型提取、转换、加载(ETL)过程...

Global site tag (gtag.js) - Google Analytics