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.pswp.cn/news/372440.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372440.shtml
英文地址,請注明出處:http://en.pswp.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" > &…