Necə Java Caching System (JCS) işləri?

Baxış: müasir proqram inkişaf caching ərizə dizayn zamanı baxılacaq ən əhəmiyyətli ünsürlərindən biridir. caching ən ümumi məqsədi performansını yaxşılaşdırılması üçün. A cache obyektlərin toplusu kimi müəyyən edilə bilər. Bu unikal tanımlayıcıları kimi düymələri ilə stateful obyektləri var. Hər hansı bir caching sistemi üçün ən ümumi storage yaddaş var. Amma caching sistemi disk maddələr saxlaya bilərsiniz, verilənlər bazası və ya hər hansı digər davamlı storage. Java Caching System (JCS) paylanmış caching çərçivəsində Java inkişaf. Müxtəlif dinamik cached data.JCS idarə dəstək verərək tətbiq performance yaddaş və disk önbelleğe dəstəkləyir yaxşılaşdırır. JCS çərçivəsində xassələri fayl vasitəsilə tamamilə yapılandırılabilir və cache idarə rahatlıq çox təmin edir.

Bu yazıda mən iş misal ilə JCS çərçivə müzakirə edəcək.

Giriş: web applications çoxunda, data bazası alınan olunur. Verilənlər bazası əməliyyat bahalı və vaxt aparan. İndi bir gün web applications məlumatlar intensiv və ilk cavab vaxt uğur üçün əsas meyarlar var. web proqram tez-tez hər bir sorğu üçün verilənlər bazası daxil olduqda onun icra yavaş olacaq. Belə ki, web applications gizlilik dəfə azaldılması və miqyaslı üçün müxtəlif dizayn üsulları aşağıdakılardır.

JCS JDK üzərində işləyir kompozit paylanmış caching sistemi 1.4 və yuxarı versiyalar. JCS performans aşağı qoymaq və yüksək oxumaq applications üçün çox təsir edici.
Sonra Java Caching Sistemi əsas xüsusiyyətləri bəzi
· Memory management
· Thread pool control
· Extensible framework
· Configurable runtime parameters
· Key based data retrieval
· Distributed composite cache
· Element event handling

JCS - Composite Cache: Java Caching Sistemi təməl kompozit cache əsaslanır. hər bir region üçün mövcud önbelleğe dörd növ var. cache istənilən aktiv etmək JCS konfiqurasiya daxil takıldığından edilə bilər. Sonra dörd müxtəlif önbelleğe və onların detalları.

  • Yaddaş Cache (LRU): Bu geniş istifadə əsas caching mexanizmi. yaddaş cache son dərəcə sürətli. Bu ən son istifadə istifadə (LRU) yaddaşında saxlanılır obyektlərin idarə etmək üçün alqoritm. LRU yaddaş cache öz LRU Map həyata əsaslanır. Bu xəritə həyata keçirilməsi çox daha sürətli LRUMap həyata və ya haqda hər hansı digər növü ilə müqayisədə.
  • Disk Cache (indeksli): yaddaş cache tam zaman disk cache data saxlamaq üçün istifadə olunur. endeksleme disk cache istifadə edildikdə, performance daha sürətli. Queue əsasında proses disk haqqında məlumat saxlamaq üçün istifadə olunur. disk cache tamamilə yapılandırılabilir edir. A mövzu hovuzu da sürətli prosesi queue işçi mövzuları idarə etmək üçün istifadə olunur.
  • JDBC Disk Cache: Bu etibarlı disk cache bir növüdür, sürətli və tam yapılandırılabilir. əsas storage JDBC uyğun bazası. Hər iki düymələri və dəyərlər bazasında saxlanılır. data bir damcı kimi saxlanılır və bitmiş data elementləri də vaxtaşırı çıxarılır. Thread hovuzu da daha sürətli emal üçün növbə işçi mövzuları idarə etmək üçün istifadə edilə bilər.
  • TCP Lateral Cache: Bu çox paylanmış server cached data yaymaq üçün mexanizmdir. Bu da tamamilə yapılandırılabilir caching sistemi. O, həmçinin bütün sistemi narahat olmadan qovşaqlarının əlavə etmək UDP kəşf mexanizmi istifadə edə bilərsiniz. TCP Lateral Cache digər qovşaqlarının socket serverləri ilə əlaqələri qurur və saxlama rəhbərliyi həyata keçirir. One server çox bölgələri idarə etmək üçün kifayət edir.
  • Rmi istifadə Remote Cache: Bu JCS tərəfindən təmin bir caching variantdır. Bu mexanizm hər node digər node ilə əlaqə tələb olunmur. uzaq cache server əlaqə nöqtəsi kimi istifadə edilə bilər və hər node ilə qoşula bilər. uzaq cache server sizin obyektin bir ayrılıq versiyası keçirmək üçün istifadə olunur. uzaq server failover bərpa digər server ilə qruplaşdırmaq olar.

asılılıq konfiqurasiya: Bundan başqa, biz JCS istifadə edərək sadə tətbiqi müzakirə edəcək. onu hərəkət əvvəl, biz classpath aşağıdakı bağımlılıkları olmalıdır. yürütülebilir bankalar download və proqram qurmaq classpath onları qoymaq edin.

  • JCS-1.3.jar
  • Commons-logging.jar
  • Commons-lang-2.4.jar
  • jar

JCS İş: Bu bölmədə müxtəlif Java caching sisteminin komponentləri və konfiqurasiya detalları müzakirə edəcək. Biz iş nümunə hər bir komponenti izah edəcək.

Sonra bir sadə əməkdaş class keçirilməsi əməkdaşı ətraflı. class həyata keçirməlidir serializable Onun data kimi interface davam edəcək. Bu oxu və yazı məlumat üçün törədici / qoyan üsulları var.

Listing1: Göstərilən Employee sinif

public class Employee java.io.Serializable həyata keçirir{

Şəxsi String adı;

Şəxsi String ünvan;

Şəxsi String empid;

ictimai Employee(String adı, String ünvan, String empid) {

this.name = adı;

this.address = ünvanı;

this.empid = empid;

}

ictimai String getName() {

qaytarılması adı;

}

ictimai etibarsız setName(String adı) {

this.name = adı;

}

ictimai String getAddress() {

return ünvan;

}

ictimai etibarsız setAddress(String ünvan) {

this.address = ünvanı;

}

ictimai String getEmpid() {

empid qayıtmaq;

}

ictimai etibarsız setEmpid(String empid) {

this.empid = empid;

}

}

Əsas Aşağıdakı EmployeeManager çərçivə API istifadə JCS paketləri idxal sinif. Bu kimi tanınan bir cache regionu istifadə "EmpCache" Yaddaş / veri qoymaq və almaq üçün. data düyməsi / dəyər cüt istifadə edərək, keş yaddaşında saxlanılır. axtarış hər dəyəri ilə bağlı əsas əsaslanır. proqram keş obyektlərin əlavə / axtarış və aradan qaldırılması göstərir.

Listing2: Göstərilən EmployeeManager sinif

idxal org.apache.jcs.JCS;

idxal org.apache.jcs.access.exception.CacheException;

public class EmployeeManager {

Şəxsi JCS cache;

ictimai EmployeeManager()

{

çalışmaq

{

// cache bərpa

cache = JCS.getInstance( “empCache” );

// cache başlamaq, Burada data başlatma ərzində yüklənmiş ola bilər

cache.put( “123”, yeni işçi( “Nick”, “Detroit.USA”, “123” ) );

cache.put( “143”, yeni işçi( “Ric”, “Seattle.USA”, “143” ) );

cache.put( “153”, yeni işçi( “Jhon”, “Chicago.USA”, “153” ) );

cache.put( “163”, yeni işçi( “və”, “Houston.USA”, “163” ) );

}

tutmaq( e CacheException )

{
e.printStackTrace();

}

}

ictimai etibarsız addEmployee( Employee ƏMİP )

{

çalışmaq

{

cache.put( emp.getEmpid(), ƏMİP );

}

tutmaq( e CacheException )

{

e.printStackTrace();

}

}

Public Employee getEmployee( String empid )

{

return ( əməkdaş )cache.get( EmpID );

}

ictimai etibarsız removeEmployee( String empid )

{

çalışmaq

{

cache.remove( EmpID );

}

tutmaq( e CacheException )

{

e.printStackTrace();

}

}

ictimai statik void main( Sim[] args )

{

// işçi meneceri yaradın

EmployeeManager empManager = Yeni EmployeeManager();

// işçi meneceri işçilərin əlavə et

/*empManager.addEmployee(yeni işçi(“Adı 1”, “Ünvan 1”, “empid1”));

empManager.addEmployee(yeni işçi(“NAME2”, “ünvan 2”, “empid2”));

empManager.addEmployee(yeni işçi(“NAME3”, “address3”, “empid3”));*/

// işçi alın

Employee ƏMİP = empManager.getEmployee(“123”);

System.out.println( “Employee Şirkət cache alınan: ” + emp.getName()+”-“+emp.getAddress());

// işçi Sil

empManager.removeEmployee(“123”);

// işçinin çıxarıldıqdan sonra

System.out.println( “cache aradan sonra işçi məlumat: ” + empManager.getEmployee(“123”) );

}

}

Sonra konfiqurasiya fayl cache.ccf. Bu, onların dəyərləri ilə bütün yapılandırılabilir parametrləri keçirir. Birinci bölmədə default dəyərlər keçirir default cache bölgə. heç bir xüsusi region sonra konfiqurasiya Əgər bu default dəyərlər istifadə olunacaq. İkinci bölüm xüsusi cache bölgəyə müəyyən edilir empCache burada. Bu xüsusi parametr dəyərlər müəyyən. son hissədə disk cache və digər parametrləri təsvir AUXILIARY CACHE bölgə.

Listing3: konfiqurasiya faylını bayrağı

# DEFAULT CACHE REGION

jcs.default = DC

jcs.default.cacheattributes = org.apache.jcs.engine.CompositeCacheAttributes

jcs.default.cacheattributes.MaxObjects = 1000

jcs.default.cacheattributes.MemoryCacheName = org.apache.jcs.engine.memory.lru.LRUMemoryCache

jcs.default.cacheattributes.UseMemoryShrinker yalan =

jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds = 3600

jcs.default.cacheattributes.ShrinkerIntervalSeconds = 60

jcs.default.elementattributes = org.apache.jcs.engine.ElementAttributes

jcs.default.elementattributes.IsEternal yalan =

jcs.default.elementattributes.MaxLifeSeconds = 21600

jcs.default.elementattributes.IdleTime = 1800

jcs.default.elementattributes.IsSpool = true

jcs.default.elementattributes.IsRemote = true

jcs.default.elementattributes.IsLateral = true

# PRE-AÇIQLANDI CACHE REGIONS

jcs.region.empCache = DC

jcs.region.empCache.cacheattributes = org.apache.jcs.engine.CompositeCacheAttributes

jcs.region.empCache.cacheattributes.MaxObjects = 1000

jcs.region.empCache.cacheattributes.MemoryCacheName = org.apache.jcs.engine.memory.lru.LRUMemoryCache

jcs.region.empCache.cacheattributes.UseMemoryShrinker yalan =

jcs.region.empCache.cacheattributes.MaxMemoryIdleTimeSeconds = 3600

jcs.region.empCache.cacheattributes.ShrinkerIntervalSeconds = 60

jcs.region.empCache.cacheattributes.MaxSpoolPerRun = 500

jcs.region.empCache.elementattributes = org.apache.jcs.engine.ElementAttributes

jcs.region.empCache.elementattributes.IsEternal yalan =

# MEVCUT AUXILIARY önbelleğe

jcs.auxiliary.DC = org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory

jcs.auxiliary.DC.attributes = org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes

jcs.auxiliary.DC.attributes.DiskPath = c:/temp

jcs.auxiliary.DC.attributes.MaxPurgatorySize = 10000000

jcs.auxiliary.DC.attributes.MaxKeySize = 1000000

jcs.auxiliary.DC.attributes.MaxRecycleBinSize = 5000

jcs.auxiliary.DC.attributes.OptimizeAtRemoveCount = 300000

jcs.auxiliary.DC.attributes.ShutdownSpoolTimeLimit = 60

Nəticə: Bu yazıda caching anlayışlar haqqında müzakirə etdik və Java Caching sistemi kimi tanınan ən məşhur caching çərçivəsində bir. Məqalədə həmçinin JCS və onların həyata keçirilməsi müxtəlif komponentləri əhatə. Nəhayət, biz Java Caching System çərçivəsində əsasında nümunə iş nümunə müzakirə etdik. JCS çox güclü və Java dilində yazılmış. storage mexanizmi və onun daxili dizayn yüksək oxu və aşağı put applications üçün çox güclü. həyata keçirilməsi tamamilə yapılandırılabilir edir, belə ki, çox səy qoyulması olmadan hər hansı bir yeni və mövcud tətbiqi ilə inteqrasiya oluna bilər.

Tagged on: ,
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share