Si Sistemit Java Caching (JCS) punimet?

Përmbledhje: Në caching moderne të zhvillimit të aplikimit është një nga aspektet më të rëndësishme të merren parasysh gjatë dizajnimit të aplikimit. Qëllimi më i zakonshëm i caching është për të përmirësuar performancën. Një cache mund të përkufizohet si një koleksion të objekteve. Ajo përmban objekte Stateful me çelësat si identifikues unik. Ruajtja më e zakonshme për çdo sistem caching është në kujtesën. Por sistemi caching mund të ruajë sendet në disk, bazës së të dhënave ose ndonjë të tjera të magazinimit të vazhdueshme. Sistemi Java Caching (JCS) është një kornizë të shpërndara caching zhvilluar në Java. Ajo përmirëson performancën aplikimit, duke siguruar mbështetje për të menaxhuar data.JCS ndryshme dinamike kopje e ruajtur mbështet në memorie dhe disk arka. Korniza e JCS është plotësisht configurable me pronat skedar dhe siguron shumë fleksibilitet në menaxhimin e cache.

Në këtë artikull unë do të diskutojnë kornizën JCS me shembull të punës.

Parathënie: Në shumicën e aplikacioneve web, të dhënave është marrë nga të preferuarat!. Operacioni bazës së të dhënave është e shtrenjtë dhe konsumon kohë. Tani një ditë aplikimet web janë të dhënat intensive dhe për herë të parë koha përgjigje është kriteri bazë për suksesin e saj. Nëse aplikimi web është shpesh hyrë në bazën e të dhënave për çdo kërkesë, atëherë performanca e saj do të jetë i ngadalshëm. Kështu aplikimet web janë duke ndjekur teknika të ndryshme të projektimit për reduktimin herë latente dhe shkallë deri.

JCS është një sistem i përbërë shpërndara caching që punon në JDK 1.4 dhe versionet e sipërme. Performanca e Sh.A është shumë i rëndësishëm për të vënë të ulët dhe kërkesat e larta të lexuar.
Në vijim janë disa nga karakteristikat kryesore të Java caching Sistemit
· Memory management
· Thread pool control
· Extensible framework
· Configurable runtime parameters
· Key based data retrieval
· Distributed composite cache
· Element event handling

JCS - cache Composite: Themeli i Java caching Sistemit është i bazuar në sasi të përbërë. Ekzistojnë katër lloje të arka në dispozicion për secilin rajon. Çdo lloj i cache mund të mbyllën në konfigurimin JCS për ta bërë atë aktiv. Në vijim janë katër arka të ndryshme dhe të dhënat e tyre.

  • Memory Cache (LRU): Kjo është përdorur gjerësisht Mekanizmi bazë caching. Cache memorie është shumë e shpejtë. Ajo përdor Përdorur Pak Fundmi (LRU) algorithm për të menaxhuar objektet e ruajtura në kujtesën. Kujtesës cache LRU bazohet në vetë implementimin e saj LRU Harta. Ky zbatim Harta është shumë më e shpejtë në krahasim me zbatimin LRUMap apo çdo lloj tjetër të hartë.
  • Disk Cache (indeksuar): Disk cache është përdorur për të ruajtur të dhënat, kur cache memorie është e plotë. Kur indeksimit është përdorur me cache disk, performanca shumë më të shpejtë. Procesi i bazuar radhë është përdorur për të ruajtur të dhënat në disk. Disk cache është plotësisht configurable. Një pishinë thread është përdorur për të menaxhuar temat punëtor radhë e cila gjithashtu e bëjnë procesin më të shpejtë.
  • JDBC Disk Cache: Ky është një tjetër lloj i disk cache e cila është e besueshme, shpejtë dhe plotësisht configurable. Magazinimit bazë është JDBC bazës së të dhënave në përputhje. Të dy çelësat dhe vlerat janë të ruajtura në bazën e të dhënave. Të dhënat është ruajtur si një BLOB dhe elementet e të dhënave skaduara janë hequr gjithashtu në mënyrë periodike. Pishinë Thread gjithashtu mund të përdoret për të menaxhuar temat e punëtorëve radhë për përpunim më të shpejtë.
  • TCP Lateral Cache: Ky është një mekanizëm për të shpërndarë të dhënat kopje e ruajtur në serverat e shumta të shpërndara. Kjo është edhe sistem plotësisht configurable caching. Ajo gjithashtu mund të përdorin mekanizmin e zbulimit UDP për të shtuar nyje pa shqetësuese të gjithë sistemin. TCP Lateral Cache krijon lidhje me serverat fole në nyjet e tjera dhe kryen menaxhimin e magazinimit. Një server është e mjaftueshme për të menaxhuar rajone të shumta.
  • Remote Cache përdorur RMI: Ky është një tjetër mundësi caching ofruar nga Sh.A.. Në këtë mekanizëm çdo nyje nuk është e nevojshme për t'u lidhur me nyje të tjera. server të largët cache mund të përdoret si një pikë lidhëse dhe çdo nyje mund të lidheni me të. server të largët cache është përdorur për të mbajtur një version serialized e objektit tuaj. Serveri i largët mund të grupohen me serverat e tjera të shërohen failover.

konfigurimi i varësisë: Në seksionin e mëposhtëm ne do të diskutojmë një aplikim të thjeshtë duke përdorur Sh.A.. Para se të lëvizin në të, ne duhet të kemi varësitë e mëposhtme në classpath. Ju lutem shkarkoni kavanoza ekzekutueshme dhe vënien e tyre në classpath për të ndërtuar aplikacionin.

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

Duke punuar me Sh.A.: Në këtë seksion ne do të diskutojmë komponentët e ndryshme të Java caching Sistemit dhe detajet e konfigurimit. Ne do të shpjegojmë çdo komponent me shembull të punës.

Në vijim është një e thjeshtë Punonjes klasës që mbajnë të dhënat e punonjësve. Klasa duhet të zbatojë Serializable Ndërfaqja e saj si të dhëna do të vazhdonte. Ajo përmban metodat energjik / argjendar për lexim dhe shkrim të dhëna.

Listing1: Duke treguar klasë punonjës

publik klasë punonjës zbaton java.io.Serializable{

Emri private String;

Adresa private String;

String empid private;

punonjës publik(Emri string, adresa string, string empid) {

this.name = Emri;

this.address = Adresa;

this.empid = empid;

}

publike String getName() {

Emri kthimit;

}

setName public void(Emri string) {

this.name = Emri;

}

publike String getAddress() {

adresë e dërguesit;

}

setAddress public void(adresa string) {

this.address = Adresa;

}

publike String getEmpid() {

kthehen empid;

}

setEmpid public void(string empid) {

this.empid = empid;

}

}

Në vijim është kryesore EmployeeManager Klasa e cila importon paketa JCS për të përdorur API kornizë. Ajo përdor një rajon i njohur si cache 'EmpCache' për të vënë dhe për të marrë të dhëna në / nga kujtesa. Të dhënat është ruajtur në kujtesën e përkohshme duke përdorur kyç / palë vlerë. Tërheqjen është bazuar në çelësin lidhur me cdo vlere. Kërkesa është treguar shtimin / gjetjen dhe largimin e objekteve të ruajtura në cache.

Listing2: Duke treguar klasë EmployeeManager

org.apache.jcs.JCS importit;

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

publik klasë EmployeeManager {

cache private JCS;

EmployeeManager publik()

{

mundohem

{

// Ngarkesës cache

cache = JCS.getInstance( “empCache” );

// Nisja cache, Këtu dhënave mund të ngarkohet gjatë inicializimit

cache.put( “123”, punonjës të ri( “Qok”, “Detroit.USA”, “123” ) );

cache.put( “143”, punonjës të ri( “Ric”, “Seattle.USA”, “143” ) );

cache.put( “153”, punonjës të ri( “Jhon”, “Chicago.USA”, “153” ) );

cache.put( “163”, punonjës të ri( “dhe”, “Houston.USA”, “163” ) );

}

kap( e CacheException )

{
e.printStackTrace();

}

}

addEmployee public void( PMM punonjës )

{

mundohem

{

cache.put( emp.getEmpid(), PMM );

}

kap( e CacheException )

{

e.printStackTrace();

}

}

Public punonjës getEmployee( string empid )

{

return ( Punonjes )cache.get( EmpID );

}

removeEmployee public void( string empid )

{

mundohem

{

cache.remove( EmpID );

}

kap( e CacheException )

{

e.printStackTrace();

}

}

publike statike kryesore void( Varg[] args )

{

// Krijo menaxherin e punonjësve

EmployeeManager empManager = EmployeeManager ri();

// Shto punonjësit me menaxherin punonjës

/*empManager.addEmployee(punonjës të ri(“NAME1”, “adresa 1”, “empid1”));

empManager.addEmployee(punonjës të ri(“NAME2”, “address2”, “empid2”));

empManager.addEmployee(punonjës të ri(“NAME3”, “address3”, “empid3”));*/

// Get punonjës

Employee PMM = empManager.getEmployee(“123”);

Println( “Detajet e punonjësve marrë nga cache: ” + emp.getName()+”-“+emp.getAddress());

// Hiq punonjës

empManager.removeEmployee(“123”);

// Pas largimit të punësuarit

Println( “Detajet e punonjësve pas largimit nga cache: ” + empManager.getEmployee(“123”) );

}

}

Në vijim është skedari i konfigurimit cache.ccf. Ajo mban të gjitha parametrat configurable me vlerat e tyre. Pjesa e parë është cache parazgjedhur rajoni i cili mban vlerat e gabimit. Në qoftë se asnjë rajon porosi është konfiguruar atëherë këto vlerat default do të përdoren. Pjesa e dytë është përcaktuar rajonin cache porosi e cila është empCache here. Ai përcaktuar vlerat parametër porosi. Pjesa e fundit është rajoni ndihmëse CACHE e cila përshkruan cache në disk dhe parametrat e tjera të lidhura.

Listing3: Duke treguar file i konfigurimit

# DEFAULT RAJONI Cache

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 = false

jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds = 3600

jcs.default.cacheattributes.ShrinkerIntervalSeconds = 60

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

jcs.default.elementattributes.IsEternal = false

jcs.default.elementattributes.MaxLifeSeconds = 21600

jcs.default.elementattributes.IdleTime = 1800

jcs.default.elementattributes.IsSpool = e vërtetë

jcs.default.elementattributes.IsRemote = e vërtetë

jcs.default.elementattributes.IsLateral = e vërtetë

# Para definuar-RAJONET Cache

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 = false

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 = false

# Arka DISPOZICION NDIHMËSE

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

Përfundim: Në këtë artikull ne kemi diskutuar në lidhje me konceptet caching dhe një kuadër më të njohura caching njohur si Java caching Sistemit. Artikulli gjithashtu mbuluar komponente të ndryshme të Sh.A dhe zbatimin e tyre. Së fundi ne kemi diskutuar një mostër shembull të punës në bazë të kornizës Java Caching Sistemit. JCS është shumë i fuqishëm dhe i shkruar në gjuhën Java. Mekanizmi i ruajtjes dhe hartimin e saj të brendshme janë shumë të fuqishme për të lexuar të lartë dhe të aplikimeve të ulët të shitur me. Zbatimi është plotësisht configurable kështu që mund të integrohet me çdo aplikim të ri dhe ekzistues, pa vënë shumë përpjekje.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share