Liferay的架构:缓存(第一部分)

Liferay的AUI框架 Liferay中的AUI框架,官方叫做Alloy,是一个UI超框架,能为浏览器的三方面,结构,风格和表现建立网络应用提供连续的简单的API。 它融合了三种设计语言:HTML, CSS 和 JAVA。 准确来说AUI是Liferay在YUI的基础上进行的Liferay扩展,以方便Liferay的一些实际应用和扩展。AUI的很多语法结构、使用方法都都和YUI相关不太多。熟悉YUI的能够快速熟悉AUI。 立即下载

    这次,我将要涉及到一个非常重要的概念:缓存。在当今的web应用中,如果没有设计一个比较好的缓存系统,在web中就不可能有一个良好的性能。所以我将要

提到的缓存不仅仅能够更好地理解Liferay架构,而且还会比较好地帮助我们去写其他的Java Web应用,尤其是在他们比较大的时候。

    Liferay以提供了优良性能(可以参考这篇性能白皮书)著称,而它的缓存系统是实现优良性能的关键因素。它的缓存系统贯穿了Liferay的三层(前端,service层,持久化层)

下图显示了每层主要的缓存组件:

让我们一层一层地来看看cache的应用,先从最底层开始:

    在持久化层,Liferay依赖Hibernate去完成它访问数据库的大部分工作。Hibernate有两层缓存结构,分别是Level1(L1) 和Level2(L2).Level1被用作cache

从当前数据库会话获取的对象,在这种情况下,数据库的的一个会话会与Liferay的 Service层的一个调用捆绑起来。所以,当前端(或者一个 Web Service)

调用service,一个数据库的会话将被打开,而且会被重用一直到这个Service方法调用return。所有对DB的操作将会共享L1 cache, 所以获取同样的对象将只会

查询一个DB.

   Hibernate的第二层cache, Level 2 可以用来扩张DB 会话和 存储数据库对象(Entity Cache)和查询的结果(Query Cache).举个例来说,如果属于一个组织

(organization)的某一个用户调用了从DB获取对象的方法,那么这时这些被查询出来的对象就会被存在缓存中。不过值得注意的是,真正存在缓存里的是存在

实体缓存(Entity Cache)对象们的引用列表。这样是为了确保在缓存中,同一个对象在缓存系统中只有一个。

    除了用Hibernate,Liferay也可以自定义SQL语句用来直接查询一些比较复杂的结果(通过重用DB的连接)。针对这些,Liferay也有自己的实体和查询缓存

(Entity Cache and Query Cache,不过目前我好像如果通过自己写SQL查询的话,没有用到缓存?).实质上,在Liferay 6.2的版本中,由于Shuyang(Liferay创始人之一)

的努力,这两种缓存已经被高效地实现了。Hibernate的L2 cache将会默认地被关闭,Liferay自己的查询缓存系统将会取代它。

    最后比较重要的一点是,以上的cache都是通过一种底层的缓存池来管理在内存中的对象的,Liferay默认用ehcache来实现这一点,但是这也可是改变的,

我们可以通过修改portal.properties文件来改变它。这些配置已经被写在hibernate-clustered.xml中,在这个xml文件中定义了,定义和配置了几个缓存区域。

    这些配置文件对于一个高性能的网站来说是很重要的。但是不要根据你自己的猜测来随意改变它们。你应该总是在做一些性能测试的时候修改它,这样可以帮助你

找到性能瓶颈和验证你所修改的。

译自:http://www.liferay.com/zh/web/jorge.ferrer/blog/-/blogs/liferay-s-architecture-caching-part-1-




































liferay数据库表结构 全面的liferay表结构详细描述,为liferay开发提供支持 立即下载

相关推荐

liferay 代码架构图

liferay 架构图,包括所有的类图,以及各类图之的关系等等,包的关系,实现思路

Liferay的缓存

Liferay有三种缓存: MultiVMPoolUtil, SingleVMPoolUtil,FinderCacheUtil 默认实现是Ehcache。 区别: MultiVMPoolUtil 可以进行分步式部署。 SingleVMPoolUtil 不进行分步式部署。 FinderCacheUtil 是一种持久化的,手工的去清理改变的缓存。...

xttifqqk的专栏 305

liferay document_llibrary上传下载实现跟踪

详细的document_llibrary流程跟踪,分析上传下载实现原理

Liferay集群负载均衡配置

先介绍一下项目系统的环境, Liferay Version: 5.2.2 两台硬件服务器,一台WINXP(M1),一台linux(M2),用Virtualbox在M2上虚拟了两个linux分别叫M3,M4 DB Mysql: JCR(JackRabbit DB), Portal(Liferay DB) 放在M1上 Web Server: Solr Server 搜索引擎Server在M1上...

Tyler_Zhou 348

liferay架构

liferay portal tomcat

windows10家庭版输入loadrunner注册码时报“License security violation. Operation isnot allowed”的解决办法

有可能出现2个错误第一个可能是第二个可能是“License security violation. Operation isnot allowed”ok,在此我在百度找了很多方法,大部分的方法都是删除注册表,但我根本就找不到这个注册表,而后又是管理中心找本地用户和组,但我依旧找不到这个玩意,然后可能是windows10家庭版本来就没有这个。再然后又以管理员身份去运行填写,好的,依旧报错,依旧未解决...

qq_30990097的博客 2558

构建门户之利刃Liferay Portal系统架构

传送门☞轮子的专栏☞转载请注明☞http://blog.youkuaiyun.com/leverage_1229 1How to AccessProtal(Simple) 用户可以通过传统上网或者无线上网的方式来访问Protal。而开发人员可以通过SOAP、RMI和自定义的通道类来访问暴露给外部调用的API来操作Protal。 2Protal Interfa...

weixin_30568715的博客 249

抄表程序员的DLMS/COSEM协议实战:从抓包到解析,手把手教你读懂IEC62056报文

本文深入解析DLMS/COSEM协议在智能电表通信中的应用,从报文捕获到数据解析的全流程实战指南。涵盖HDLC帧解析、应用层连接建立、数据请求/响应解码等核心内容,并提供Wireshark配置、OBIS代码速查表等实用工具,帮助开发者快速掌握IEC62056标准下的电能表通信技术。

weixin_29178069的博客 300

liferay集群

一,nginx配置ip_hash,解决session问题。将IP通过哈希计算得到一个值,根据该值选择一台服务器,以后这个IP进来都会走同一台服务器。用这种方法可能会导致某台服务器的压力过大,但可以解决session问题,不会丢失session.二,配置域名后发现在liferay的控制面板中无法点击按钮进行清除缓存这个原因是因为在liferay的配置文件里,默认的转发配置如下:我们用域名的话需要设置...

fwk19840301的博客 813

Aruco标签定位、测距、三维位置估算 opencv应用

摄像头要一开始对准aruco标签才开始运行。+ 相机标定文件(参考我的上篇文章)+ aruco标签6*6。

dgut_guangdian的博客 4222

revit二次开发环境搭建(2024版)(小白友好)

revit二次开发环境配置,SDK、addin manager和lookup新手友好安装教程

m0_56961251的博客 1420

liferay 集群 缓冲(实际项目的解决方案)

解决思路:   首先把缓冲问题剥离出来 在利用NFS  共享到另一台服务器,deploy也可以用同样的方法实现这意味着缓存可以分布在多个Liferay 节点下同时运行。启用缓存可以显著提高性能。例如说两个用户在浏览留言板。第一次用户通过单击启动一个线程的命令来阅读。Liferay 必须从数据库查找该线程并且格式化在浏览器中显示的格式。通过一个分布式的 Ehcache运行此线程时,可以从数据库中提取...

fwk19840301的博客 779

GEE:使用 CCDC 算法进行连续变化检测和分类

连续变化检测和分类(CCDC)算法是一种广泛应用于遥感数据分析的方法,可以用于检测土地覆盖变化、农作物生长状态的变化以及水资源的变化等。Google Earth Engine是一个强大的云端平台,提供了丰富的遥感数据和工具,可以用于执行各种类型的遥感数据分析。本文将介绍如何使用Google Earth Engine的CCDC算法进行连续变化检测和分类。

养乐多的博客 5679

终于解决了liferay的缓存问题!

板 要我编写一个统计页面访问量的Portlet,整了快20天了,始终因为liferay在未signin时页面不刷新,而无法解决每个领域的访问量统计。 一直怀疑是Tomcat的缓存在作梗,网上搜罗了好几天,试过了N种方法,就是不行。今天突然发现下面文章,眼睛顿时一亮:liferay页面缓存问题解决

北冥有鱼 其名为鲲 化而为鸟 其名为鹏 1745

【云原生技术】SonarQube 生态中PMD插件和P3C插件详细介绍

4. 在项目中如何选择 / 组合 1. 小团队、对《阿里规约》认同度高 → 直接启用 **P3C**,配合 SonarJava 基本够用。 2. 追求全面 Bug/安全检测 + 额外编码规范 → **SonarJava + PMD**(必要时加 P3C 少量规则)。 3. 大型多团队,希望“一本规约”统一风格 → **P3C 为主**,再补充 SonarJava/PMD 的 Bug 与安全规则。 4. 通过 Quality Gate 控制:将 **Blocker/Critical** Bug

weixin_46453070的博客 1366

在WIN10系统中安装TIA博途V18,重启后提示安装介质不可用,请插入DVD 或检查网络连接的解决办法

在WIN10系统中安装TIA博途V18,重启后提示安装介质不可用,请插入DVD 或检查网络连接的解决办法

Robot_PLC_HMI_Automation 1万+

Liferay研究之廿五:缓存技术的使用

缓存是一个良好设计架构的必须元素,因为使用具有通用目的的架构机制,势必会造成一些计算的冗余,造成性能的降低,通过缓存机制,就可以弥补这方面的问题。Liferay中大量的使用了缓存机制,其核心都是MultiVMPool机制,但在具体使用上有两种方式。方式一:使用FinderCache类,具体用法:1、放入缓存FinderCache.putResult(classNameCache

smilingleo的专栏 2986

基于图神经网络强化学习解决车辆路径规划问题(完整代码+报告)

基于图神经网络强化学习解决车辆路径规划问题(完整代码+报告)

3055

Liferay页面缓存

 转载自:http://blog.chinaunix.net/u/25536/showart_233145.htmlLiferay页面使用缓存,在未登录时,页面只做一次加载,即使对JSP文件修改,页面有时也没法重新加载。但在登录之后,每一个请求每一个页面时都会重新加载。在网上查了很多资料,使用那些方法对一般的JSP页面都有作用,但对Liferay却没有效果。  经过研究发现,Liferay缓存

lifesounds的专栏 1058

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Liferay 登录页面在浏览器选择后退,由于缓存不刷新的解决方案

在Liferay中,为了提高性能,页面进行缓存。但是在登录的两个地方,/c/portal/login 以及 login 的portlet 在使用的时候,登录之后再选择浏览器中的IE 后退按钮,由于进行了缓存则页面不重新刷新请求,故需要进行部分的修改。对应/c/portal/login 的修改是位于com.liferay.portal.action.LoginAction 中public A

北冥有鱼 其名为鲲 化而为鸟 其名为鹏 1821

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Liferay研究之廿七:一些有用的API分析

 com.liferay.portal.util.PropsUtil在Portal.properties中设置的每个属性,都有一个类的属性与之对应,这个类就是:PropsUtil,每个属性都是静态的。对应的还有一个类是:PropsValues可以直接获取属性对应的值。如果想扩展portal.properties,在其中加上自己的值,那么就需要修改这两个类。 com.liferay.portal.u

smilingleo的专栏 3965

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

提高liferay性能

转载自:http://www.liferay.com/web/wanpeng/blog/-/blogs/777189提高liferay性能 By Gavin Wan, On 5/7/08 6:28 AM 似乎总能听到liferay性能的抱怨, 在一个开源软件中这其实不难理解,就想一台公用的电脑,有人用oracle就在上面装个oracle,有人用DB2就又装了一个DB2……

smilingleo的专栏 2135

使用liferay开发小记

使用liferay开发系统时涉及到的对liferay的一些修改信息: liferay版本4.3.3 1,系统不想使用liferay默认的能自己定制portlet外观信息的选项。 则修改liferay-portal/html/themes/_unstyled/templates下的portlet.vm,并且在 相应的各个风格下面也修改该文件,去掉文件中的$theme.ico

北冥有鱼 其名为鲲 化而为鸟 其名为鹏 1045

Liferay中的Cache问题

最近在测试的时候,发现一个问题,就是IE的首页设为了该网站。 登录成功后,什么也不做,直接点击home的那个图标,画面会跑到登录画面去。 但是用户名,密码都不输入,直接点击登录就能够迁移到TOP画面。 其实如果是已经登录的情况下,不想跑到登录画面去,而是直接显示TOP画面。 查找了半天,发现是IE的cache的问题。 那么Liferay中cache的设置在那里呢? 是在them

步行者的专栏 1487
上一篇: Java基础重温(四)对象初始化加载
下一篇: Java基础重温(五)类,接口
desmond_assis
博客等级 码龄14年 33粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值