glassfish

您以前听说过连贯性吗? 可能是。 它是那些著名的内存网格解决方案之一,这些解决方案承诺了出色的快速数据访问和无限空间用于您经常使用的数据。 其中一些众所周知的竞争对手是Infinispan , Memcached和Terracotta Ehcache 。 它们都是很棒的,而Coherence最糟糕的部分可能是它不是开源的。 这是一个由四部分组成的系列文章的第一部分,我将在其中简短说明Coherence与GlassFish的结合使用。 旨在向您简要介绍可能的情况。 以下内容将更详细,并以具体示例描述配置。

为什么要连贯?

但是,为什么我选择了Coherence而不是其他任何一个? 我喜欢与GlassFish合作,并且最近一直在寻求与那些内存网格之一进行稳定且轻松的集成,以解决一些数据密集型用例。 因此,首先要看的是Oracle产品堆栈。 这种想法或多或少地推动着,必须将任何类型的集成都集成到EclipseLink中,这是GlassFish附带的JPA 2.0 RI。 特别是因为有了带有JPA 2.0的新的Cache API。

最初的研究表明该主题中的信息泄漏。 到目前为止,上述产品均未与EclipseLink进行任何插件或其他集成。 即使EclipseLink有一个称为“缓存拦截器”的框架,它使您能够非常轻松地绑定第三方缓存系统,我仍在寻找(可能受支持的)ootb解决方案。 因此,我最终关注了Coherence。 小提示:我不是询问许可或费用的合适人选。 我要做的就是根据OTN许可证使用Coherence。

什么是连贯性?

Oracle Coherence是内存中的数据网格解决方案。 您可以使用Coherence扩展关键任务应用程序,以提供对常用数据的快速访问。 通过在多个服务器之间自动动态地对内存中的数据进行分区,即使在服务器发生故障的情况下,Coherence也可以实现连续的数据可用性和事务完整性。 它是一个共享的基础架构,将数据本地性与本地处理能力结合在一起,可以执行实时数据分析,内存网格计算以及并行事务和事件处理。

网格上JPA的策略

所有内存数据网格解决方案都具有非常简单的put / get API。 您发出类似的内容:

Cache.put(key, object);
Cache.get(key);

将对象存储到缓存中或从缓存中取回它们。 一致性将负责将所有内容持久化到数据库中(可能使用EclipseLink)。 从应用程序的角度来看,这似乎是一个非常简单的API。 我们称之为“ JPA支持的缓存”。 但这只是三种可能的情况之一。 第二种是用于JPA的L2缓存方法,这基本上意味着您只需实现基于JPA的应用程序并在第二步中插入一致性。 第三是前两个的结合,并且将所有数据库操作直接重定向到Coherence。 这三者都有其优点,当然也有缺点。

产品和定义

此时最好最好看看周围的不同产品和名称。 JPA 2 RI是EclipseLink ,它是Oracle商业产品TopLink的一部分 。 所有的Coherence集成都是TopLink Grid产品的一部分,该产品还包含EclipseLink作为JPA实现。

1)JPA支持的缓存

您可以将Coherence API与通过JPA映射的数据库支持的缓存一起使用。 网格通过JPA CacheLoader和CacheStore实现访问关系数据。 在这种“传统”一致性方法中,TopLink Grid提供了针对EclipseLink JPA优化的CacheLoader和CacheStore实现。 ( EclipseLinkJPACacheLoader和EclipseLinkJPACacheStore ),它们都包含在toplink-grid.jar文件中。 这样,您将使用标准的JPA运行时配置文件persistence.xml和JPA映射文件orm.xml。 必须指定Coherence缓存配置文件coherence-cache-config.xml来覆盖默认的Coherence设置并定义CacheStore缓存方案。

我将在系列的第二部分中向您展示此示例。

2)JPA L2缓存

网格缓存配置使用Coherence作为JPA共享(L2)缓存。

主键查询尝试首先从Coherence获取实体,如果不成功,将查询数据库,并用查询结果更新Coherence。 针对数据库执行非主键查询,并针对Coherence检查结果,以避免缓存实体的对象构建成本。 新查询的实体将放入Coherence。 写入操作将更新数据库,如果成功提交,则将更新后的实体放入Coherence。

我将在系列的第三部分中向您展示此示例。

3)具有JPA支持的缓存的JPA L2缓存

网格实体配置应由需要快速访问大量相当稳定的数据并且执行相对较少更新的应用程序使用,结合使用Coherence作为二级缓存,使用后写功能通过异步执行数据库更新来缩短应用程序响应时间。 读取操作从Coherence缓存中获取对象。 写入操作将对象放入Coherence缓存中,已配置的二级缓存对数据库执行写入操作。

我将在系列的最后一部分向您展示此示例。

进一步的阅读和下载:

参考: 具有GlassFish和Coherence的高性能JPA –来自我们JCG合作伙伴 Markus Eisele的 第1部分 ,在“使用Java进行企业软件开发”博客中

相关文章 :
  • 具有GlassFish和一致性的高性能JPA –第2部分
  • 具有GlassFish和一致性的高性能JPA –第3部分
  • 在云中开发和测试
  • Java EE中的配置管理
  • 泄漏:Oracle WebLogic Server 12g
  • Java EE6装饰器:在注入时装饰类
  • Java教程和Android教程列表

翻译自: https://www.javacodegeeks.com/2011/11/high-performance-jpa-with-glassfish-and.html

glassfish

glassfish_具有GlassFish和一致性的高性能JPA –第1部分相关推荐

  1. glassfish_具有GlassFish和一致性的高性能JPA –第2部分

    glassfish 在我的四部分系列的第二部分中,我将解释将Coherence与EclipseLink和GlassFish结合使用的第一个策略.它描述了配置带有Coherence的JPA支持的Cach ...

  2. glassfish_具有GlassFish和一致性的高性能JPA –第3部分

    glassfish 在我的四部分系列的第三部分中,我将说明将Coherence与EclipseLink和GlassFish结合使用的第二种策略. 这就是通过EclipseLink使用Coherence ...

  3. 具有GlassFish和一致性的高性能JPA –第2部分

    在我的四部分系列的第二部分中,我将解释将Coherence与EclipseLink和GlassFish一起使用的策略第一.这描述了配置Coherence的JPA支持的Cache所必须采取的步骤,以及如 ...

  4. 具有GlassFish和一致性的高性能JPA –第3部分

    在我的四部分系列的第三部分中,我将解释将Coherence与EclipseLink和GlassFish结合使用的第二种策略. 这就是通过EclipseLink使用Coherence作为二级缓存(L2) ...

  5. 具有GlassFish和一致性的高性能JPA –第1部分

    您以前听说过连贯性吗? 大概是. 它是那些著名的内存网格解决方案之一,该解决方案承诺了超快的数据访问速度和对经常使用的数据的无限空间. 一些众所周知的竞争对手是Infinispan , Memcach ...

  6. 做一个高一致性、高性能的Flutter动态渲染,真的很难么?

    Flutter动态模板渲染架构升级 ​ 最近小组在尝试使用集团DinamicX的DSL,通过下发DSL模板,实现Flutter端的动态化模板渲染.我们解决了性能方面的问题后,又面临了一个新的挑战--渲 ...

  7. jpa动态扩展sql_扩展您的JPA POJO

    jpa动态扩展sql 可扩展性是许多体系结构的重要特征. 它衡量是否容易(或困难) 它是在不影响现有核心系统功能的情况下添加或更改功能. 让我们举一个简单的例子. 假设您的公司拥有一个核心产品来跟踪体 ...

  8. 扩展您的JPA POJO

    可扩展性是许多体系结构的重要特征. 它衡量是否容易(或困难) 它是在不影响现有核心系统功能的情况下添加或更改功能. 让我们举一个简单的例子. 假设您的公司拥有一个核心产品来跟踪体育俱乐部中的所有用户. ...

  9. 从GlassFish 3.x扩展到WebLogic 12c Server

    Oracle针对GlassFish服务器的策略的主要目标之一是"与Fusion Middleware and Products集成"(来源: Community Roadmap,2 ...

最新文章

  1. 三角函数公式、诱导公式
  2. pstack 安装linux_详解命令-pstack
  3. 当clear line vty 命令不起作用时
  4. 安卓开发实现画廊效果
  5. Git初学札记(九)————EGit检出远程分支
  6. django-orm查询功能词
  7. 8-字符串的压缩存储
  8. 说说从URL输入到页面展现的过程
  9. 编译x264出现错误:No working C compiler found.
  10. 解决SVN没有中文选项
  11. 常见BSOD蓝屏原因分析
  12. 汽车租赁管理系统(java)--隔壁小河
  13. 征途服务器文件,如何使用云服务器架设征途
  14. IDA pro与x64dbg地址对齐
  15. 蚂蚁金服bPaaS究竟是什么?
  16. 舆情发展规律如何把控?
  17. AI时代下的教育新模式---“青少年人工智能教育”
  18. 详解 Web Worker,不再止步于会用
  19. Matlab -----求矩阵特征多项式和特征值
  20. 马里兰大学计算机世界排名,2019上海软科世界一流学科排名计算机科学与工程专业排名马里兰大学帕克分校排名第38...

热门文章

  1. 利用老毛头启动盘重装win7
  2. springmvc中报错Request processing failed;
  3. 使用Servlet上传多张图片——Dao层(BaseDao.java)
  4. java后台手动分页
  5. React前端格式化时间
  6. java中的tostring_java 中重写toString()方法
  7. idea中@Data标签getset不起作用
  8. java oca_OCA第5部分中的Java难题
  9. shebang_Shebang来Java了吗?
  10. jax-rs jax-ws_什么是JAX-RS注释? (第3部分)