EhCache复制:RMI与JGroups

最近,我正在研究一种需要复制缓存的产品。 缓存提供程序已经确定-EhCache,剩下的就是有关传输的问题。 哪一个是最佳选择? 这里的最佳选择是指性能更好的选择。 仅在两个可用传输之间进行了性能评估-JGroups和RMI,对其他传输不予考虑。

在两个节点之间测试了复制。 主要目标是了解增加消息数据大小和消息总数如何影响性能。 另一个目标是找到复制性能真正变差的地方。 后者不是那么容易,因为测试使用的内存量有限,并且空闲内存空间的耗尽可能会导致性能不精简。 以下是用于运行测试的内存大小和软件版本:

  • 所有测试使用6GB的堆进行所有执行。
  • 测试在EhCache v.2.3.2上执行
  • JVM是Sun Java 1.6.0_21

测试本身非常简单。 一个节点将一定数量的具有一定大小的元素放入缓存中,另一节点则读取所有这些元素。 测试输出是读取所有元素所需的时间。 读取第一个元素后,计时器开始计时。

第一个测试为每个迭代创建10000个元素。 变量是消息大小,每次迭代增加两次。 在第一个迭代中,大小为1280字节,在最后一个迭代中为327680字节(320 Kb)。 这意味着具有10000个元素的最终迭代(每个大小为320 Kb)将传输大约3Gb的数据。 测试表明,EhCache可以很好地应对元素大小的增加,并且速度下降与传输数据的大小大致成比例,可以在图形上看到:

此处,y轴是传输所需的时间(以毫秒为单位),x轴是元素的大小。 无需多说。 RMI肯定比JGroups更好。

在秒测试中,变量是元素数,元素的大小保持恒定并等于1280字节。 与之前的测试一样,每次迭代中消息的数量乘以2,而最终迭代中传输的数据量则相同,为3Gb。 下图显示了效果如何:

如上图所示,y轴是一次迭代转移所有元素所需的时间。 X轴是元素的数量。 同样,可以看出RMI是领导者。 我相信帽子JGroups在最新的迭代中大放异彩,这就是为什么它如此糟糕的原因。 这意味着JGroups每个元素具有更多的内存开销。 曾经有一次,谁不相信(我不会;))我的结果并想自己尝试,这里是资源和配置 。

而且,作为结论……好吧,RMI和JGroups的速度都可以接受。 JGroups肯定会消耗更多的内存,这意味着使用它来处理大量数据可能会遇到问题。 另一方面,RMI使用TCP而不是UDP,因为RMI具有大量节点,可能会导致更高的网络负载。 不幸的是,该测试没有以任何方式涵盖后者,其实际影响尚不清楚。

参考: EhCache复制:RMI与JGroups。 从我们的JCG合作伙伴 Stanislav Kobylansky在Stas的博客博客中获得。


翻译自: https://www.javacodegeeks.com/2012/06/ehcache-replication-rmi-vs-jgroups.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle 监控语句整理(包括TOP SQL等)

希望能对大家有所帮助! 很多时候大家想查看oracle数据库中的sql语句执行情况,但是又不知道如何是好,今天在这里为大家提供一个sql语句,大家可以通过以下的sql语句查询Oracle数据库中Top Sql情况: 查询结果可按照PCT、总…

服务器wifi无线放大器,一回家WiFi信号太弱?教你用两毛钱制作信号放大器

原标题:一回家WiFi信号太弱?教你用两毛钱制作信号放大器现在家家户户都有无线路由器,但是大部分人都还是早期的单天线产品,信号覆盖范围比较小,特别是穿墙性能不行。人在客厅WiFi信号还满格,一到卧室就瞬间…

iOS开发 之 可穿戴设备 蓝牙4.0 BLE 开发

1 前言 当前有越来越多的可穿戴设备使用了蓝牙4.0 BLE(Bluetooth Low Energy)。对于iOS开发而言,Apple之前专门推出CoreBluetooth的Framework来支持BLE的开发。对于硬件开发有了解的朋友应该知道,在之前使用低版本的蓝牙的设备,要…

将Java服务公开为Web服务

本教程解决了开发人员面临的最实际的情况。 大多数时候,我们可能需要将某些现有服务公开为Web服务。 在项目生命周期的不同阶段可能会遇到这种情况。 如果这是初始阶段,那么您几乎是安全的,您可以为此做好充分的准备。 但是,将要发…

git服务器维护 备份,gitlab服务运维,备份与恢复 - 橙子柠檬's Blog

gitlab服务运维工作Gitlab-ctl 使用gitlab-ctl start #启动服务gitlab-ctl stop #停止服务gitlab-ctl restart #重启服务检查服务的日志信息gitlab-ctl tail redis #检查redis的日志gitlab-ctl tail postgresql #…

angular js实现开关效果

功能:实现点击排序,再点击排倒序。 实现方法如下 方法一:定义变量实现点击切换true或false,代码为: $scope.lidata [ {"name":"Terry","age":12}, {&qu…

使用TestNG的弹簧测试支持

TestNG是一个测试框架,旨在涵盖所有类别的测试:单元,功能,端到端,集成等。 它包括许多功能,例如灵活的测试配置,对数据驱动测试的支持(使用DataProvider),强大…

Entity Framework - 理清关系 - 基于外键关联的单向一对一关系

注:本文针对的是 Entity Framework Code First 场景。 之前写过三篇文章试图理清Entity Framework中的一对一关系(单相思(单向一对一), 两情相悦(双向一对一), 两情相悦-续),但当时理…

微信社交小程序服务器,Day12-微信小程序实战-交友小程序-搭建服务器与上传文件到后端...

要搞一个小型的cms内容发布系统因为小程序上线之后,直接对数据库进行操作的话,慧出问题的,所以一般都会做一个管理系统,让工作人员通过这个管理系统来对这个数据库进行增删改查微信小程序其实给我们提供了这样的能力了(也就是可以…

java go

熟练掌握java技术,对多线程、数据结构有清晰的认识; 熟悉MySQL/Oracle数据库,熟悉关系数据库应用设计开发; 熟悉Spring/MyBatis/Freemarker等一种或者多种框架; java基础扎实,熟练掌握目前主流的开源框架&a…

了解如何解决OSGI捆绑包

我想回顾一下OSGI包如何解决并使用Apache Karaf进行演示。 Karaf是基于Apache Felix内核的功能齐全的OSGI容器,并且是Apache ServiceMix集成容器的基石。 对于第一部分,我将讨论OSGI框架如何解决捆绑包。 在第二部分中,我将使用Apache Karaf演…

文件共享服务器imac,iMac怎么在网络上共享设备windows文件夹和服务 | MOS86

本章通过向您展示如何在网络和Mac和Windows计算机之间共享文件,文件夹和设备,帮助您充分利用您的iMac网络连接。→使用Macs共享文件和文件夹使用AirDrop和文件共享→与Windows 7计算机共享文件→设置共享权限→使用共享表快速在线共享文件→共享和访问网…

【转】 简单理解Socket

题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人;但主要是因为这段时间一直在看html5的东西,看到web socket时觉得很有意思,动手写…

.NET基础

.NET C# ASP.NET关系:.NET是一个平台,提供程序运行的虚拟机环境和类库。 C#是.Net平台上的一种语言,其他语言还有VB.NET PowerShell等。 ASP.NET是在.NET下的网站开发技术。 安装.NET FrameWork就可以运行。VS集成安装了.NET FrameWork. 控制…

业务活动监视器(BAM)2.0带来的革命

生产兼具精益和企业价值的中间件是一项艰巨的工作。 它要么不存在,要么需要创新的思维(很多),并且需要在实现中反复进行。 业务风险很大,但是如果您做对了,它就会使您领先于其他任何公司。 这就是为什么我们…

oracle销售服务器吗,oracle 服务器 版本

oracle 服务器 版本 内容精选换一换Atlas 800 训练服务器(型号 9010)安装上架、服务器基础参数配置、安装操作系统等操作请参见《Atlas 800 训练服务器 用户指南 (型号9010)》。Atlas 800 训练服务器(型号 9010)适配操作系统如表1所示。请参考表2下载驱动和固件包。Atlas 800 训…

Vue组件间通信:一个例子学会Vue组件-Vue.js学习总结)(转载)

详情请点击 http://www.jianshu.com/p/9ad1ba89a04b转载于:https://www.cnblogs.com/zhongjiang/p/6694459.html

必填字段的自定义JSF验证器

实现EditableValueHolder接口的JSF组件具有两个属性“ required”和“ requiredMessage” –一个标志,指示用户需要输入/选择非空值,以及一个用于验证消息的文本。 我们可以使用它,但是它不够灵活,我们不能直接在视图中&#xff0…

java 转码%2f%_JS和JAVA中常用的编码转码函数

js中escape,encodeURI,encodeURIComponent函数和unescape,decodeURI和decodeURIComponent函数的功能1.escape方法对String对象编码,escape方法返回一个包含了"转义序列"的字符串值。除了ASCII字母和数字,以及这几个符号 *-/._外(共有1052769个字符不会被编…

mybatis 下划线转驼峰配置

一直以来&#xff0c;在sqlmap文件中&#xff0c;对于数据库中的下划线字段转驼峰&#xff0c;我们都是通过resultmap来做的&#xff0c;如下&#xff1a; <resultMap id"ISTableStatistics" type"com.medsoft.perfstat.pojo.ISTableStatistics" > &…