ehcache rmi_EhCache复制:RMI与JGroups

ehcache rmi

最近,我正在研究一种需要复制缓存的产品。 缓存提供程序已经确定-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肯定会消耗更多的内存,这意味着使用JGroups处理大量数据可能会遇到问题。 另一方面,RMI使用TCP而不是UDP,因为RMI具有大量节点,可能会导致更高的网络负载。 不幸的是,该测试没有以任何方式涵盖后者,并且真正的影响尚不清楚。

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


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

ehcache rmi

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

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

相关文章

Element Table 可以实现哪些常见的有用的功能

最近项目中频繁使用 table 功能,因为 UI 框架使用的又是 Element UI,于是总结下在 Element 下 el-table 组件使用技巧。1.行背景色table 组件提供了 row-style 属性,说明:行的 style 的回调方法,也可以使用一个固定的 …

如果在这样的环境中写代码,会不会很高效

桌面环境分享系列又来了。我会把平时看到的好的桌面布置分享给大家,帮助大家在桌面整理和打造方面提供一些新的想法和创意。如何评价一个开发桌面的好坏,首先一定要清爽整洁,该有的家伙事儿一定要有。不是要看上去要有多高大上,重…

Vue 页面如何监听用户预览时间

最近的业务中涉及到这样一个需求,在线培训的系统需要知道用户对某个在线预览的页面追踪用户的预览时长。初步我们首先想到借助 Vue 页面的生命周期函数 mounted 和 destroyed,分别在其中加入开始计时和清除计时的逻辑,通过后台的接口上报对应…

一个追求高效的学习者手机里装有哪些APP?(转)

转载:http://www.jianshu.com/p/f568c8d8b6bb 1、录音软件-Recordium 参加活动,如果不想错过活动现场的经常片段,速记又来不及,那就选择录音吧。小六之前都使用录音笔,但是自从有了这个APP之后,在开会&…

spring social_Spring Social入门

spring social像我一样,无论是添加简单的Facebook“赞”按钮,一大堆“共享”按钮还是显示时间轴信息,您都不会注意到当前对应用程序“社交化”的热衷。 每个人都在做这件事,包括Spring的家伙,事实上,他们提…

Vue 页面如何利用生命周期函数监听用户预览时长

最近的业务中涉及到这样一个需求,在线培训的系统需要知道用户对某个在线预览的页面追踪用户的预览时长。初步我们首先想到借助 Vue 页面的生命周期函数 mounted 和 destroyed,分别在其中加入开始计时和清除计时的逻辑,通过后台的接口上报对应…

项目中的富文本编辑器该如何选择?

项目中经常需要用到富文本编辑器的时候,而常见的富文本编辑器都有哪些?该如何选择? 先看看市面上都有哪些可用的富文本编辑器: TinyMCE(插件式的,支持 Vue,React,Angular 框架&…

根据自己的博客数据统计国内IT人群

装上百度统计有一段时间了,今天突然找出报表看看,发现一个很有意思的事情。访问来源TOP5依次是:北京,上海,深圳,杭州,广州 虽然大部分文章都是当时特别白的时候记录下来的遇到过的问题&#xff…

程序员的工作周报该怎么写?

大多数公司都有写周报的要求,为什么要写周报?很多流于形式的周报,会让员工感到厌烦。特别是程序员,你让他写代码可以,写这种篇幅稍微大点的文字,简直要了他的命。周报作为一种文字载体,是下级向…

一个快速生成元素背景的 React 组件

在开发过程中,我们经常会遇到使用背景的地方,比如登录页面,用户信息页面,封面图…… 寻找契合业务主题的背景十分耗费精力,总觉得做的背景不合适,如果直接用图片呢,逻辑是比较简单,但…

python之路_前端基础之Bootstrap 组件

文档内容参考地址&#xff1a;http://v3.bootcss.com/components/ 一、图标 如下例&#xff0c;Star文本前有一个空格&#xff1a; <button type"button" class"btn btn-default btn-lg"><span class"glyphicon glyphicon-star" aria-h…

Java核心技术 卷1 多线程----线程安全的集合(4)

如果多线程要并发的修改一个数据结构&#xff0c;例如散列表&#xff0c;那么很容易会破坏这个数据结构。一个线程可能要开始向表中插入一个新元素。假定在调整散列表各个桶之间的链接关系的过程中&#xff0c;被剥夺了控制权。如果另一个线程也开始遍历同一个链表&#xff0c;…

如何快速实现 Wordpress 博客域名更换?

如题&#xff0c;如何快速更换使用 Wordpress 搭建的网站、博客的域名&#xff0c;除了在域名服务商那更换域名的解析和 web服务器端的配置外&#xff0c;还应该从数据库端做些什么&#xff1f;熟悉 Wordpress 的用户都知道在 Wordpress 后台&#xff0c;设置 --> 常规 里有…

浮动—春联(文字竖直排列)

<div id"main"><div class"top">李白</div><div class"left">明月几时有</div><div class"right">把酒问青天</div> </div> 1 #main{2 height: 540px;3 …

了解下广告计费模式CPC、CPA和CPM

目前各大广告平台最常见的广告计费模式分别有CPC、CPA、CPM。例如知乎、头条、百度、腾讯等各类平台投放广告&#xff0c;基本都离不开这几种广告计费方式。由于博客流量日渐见好&#xff0c;最近也申请了谷歌的广告的流量主&#xff0c;所以有必要了解下这几种广告模式&#x…

JUnit 5 –设置

2015年11月&#xff0c; JUnit Lambda团队展示了他们的原型 。 此后&#xff0c;该项目更名为JUnit 5&#xff0c;并于2016年2月发布了Alpha版本。我们将在一系列简短文章中对其进行探讨&#xff1a; 设定 基本 建筑 条件 注射 … 本章讨论JUnit 5的设置&#xff0c;以便…

如何在 VS Code 中创建自己的代码片段

在项目开发中&#xff0c;我们经常需要新建文件&#xff0c;而这些初始化这些文件又需要敲出很多相同的代码&#xff0c;比如我们新建一个 .vue 的文件&#xff0c;需要我们在写正式的功能代码之前&#xff0c;完成以下初始化代码&#xff1a; <script setup langts> &l…

如何使用 Apifox 来管理测试你的接口

日常开发&#xff0c;你是使用 Postman 来测试接口&#xff0c;还是用接口文档生成工具 Swagger&#xff0c;最近发现了一个很好用的工具 Apifox&#xff0c;集API 文档、API 调试、API Mock、API 自动化测试功能为一体&#xff0c;兼客户端和 Web 端的强大的功能。 主要界面如…

完善系统的最后一公里,增加系统日志功能

当我们在开发一个系统的时候&#xff0c;随着规划的功能越来越多&#xff0c;按照复杂度和稳定性相反的原则&#xff0c;为了保证系统能够按照我们设想的目标运行&#xff0c;我们需要对系统的运行状况进行监控。 那么什么时候介入监控比较好&#xff1f;在系统功能开发的前期…

java泛型面试_Java泛型面试问题

java泛型面试Java面试中的通用面试问题在相当长的时间内在Java 5周围越来越普遍&#xff0c;许多应用程序都转移到Java 5上&#xff0c;并且几乎所有新的Java开发都发生在Tiger&#xff08;Java 5的代号&#xff09;上。 泛型和Java 5功能&#xff08;例如Enum&#xff09;的重…