Ինչպես Java Caching համակարգ (JCS) աշխատանքները?

Overview: Ժամանակակից դիմումը զարգացման caching մեկն է առավել կարեւոր ասպեկտների կարող է համարել ընթացքում ծրագրի դիզայնին. Առավել տարածված նպատակն caching է բարելավել կատարումը. A cache կարող է սահմանվել որպես հավաքածուի օբյեկտների. Այն պարունակում է Stateful օբյեկտների հետ բանալիների եզակի identifiers. Առավել տարածված պահպանման համար որեւէ caching համակարգի ի հիշատակ. Բայց caching համակարգը կարող է նաեւ պահել իրերը սկավառակ, տվյալների բազայի, կամ որեւէ այլ համառ պահեստավորման. The Java Caching համակարգ (JCS) մի տարածվում է caching շրջանակը մշակվել է Java. Այն բարելավում է դիմումը կատարումը `տրամադրելով աջակցություն է կառավարել տարբեր դինամիկ Պահված data.JCS աջակցում է հիշողության եւ սկավառակի caches. The JCS շրջանակը լիովին կոնֆիգուրացվող միջոցով հատկությունների ֆայլը եւ ապահովում է շատ ճկունություն cache կառավարման.

Այս հոդվածում ես կքննարկի JCS շրջանակը հետ աշխատանքային օրինակ.

Ներածություն: Ի մասը վեբ դիմումները, տվյալները Ստացված տվյալների բազայում. Տվյալների բազան գործողությունը թանկ եւ ժամանակատար. Հիմա մի օր վեբ դիմումները են տվյալները ինտենսիվ եւ առաջին արձագանքը ժամանակն է, որ հիմնական չափանիշները դրա հաջողության. Եթե ​​վեբ դիմումը հաճախ մուտք գործելու տվյալների յուրաքանչյուր հարցման, ապա դրա կատարումը կլինի դանդաղ. Այնպես որ վեբ դիմումները են հետեւում տարբեր դիզայներական տեխնիկաներ նվազեցման ուշացումով անգամ եւ լայնածավալ մինչեւ.

JCS է կոմպոզիտային տարածվում է caching համակարգ է, որը աշխատում է JDK 1.4 եւ վերին տարբերակները. Ներկայացումը JCS շատ տպավորիչ ցածր դնում եւ բարձր կարդալու դիմումները.
Հետեւյալ են որոշ հիմնական հատկանիշները Java caching համակարգի
· Memory management
· Thread pool control
· Extensible framework
· Configurable runtime parameters
· Key based data retrieval
· Distributed composite cache
· Element event handling

JCS - The Composite Cache: Հիմքը Java caching համակարգը հիմնված է կոմպոզիտային քէշը. Կան չորս տեսակի caches համար մատչելի յուրաքանչյուր մարզում. Ցանկացած տիպի cache կարող է plugged մեջ JCS կազմաձեւման, որպեսզի այն ակտիվ. Հետեւելով են չորս տարբեր caches եւ դրանց մանրամասները.

  • հիշողության Cache (կազմվում): Սա է լայնորեն օգտագործվում հիմնական caching մեխանիզմ. Հիշողությունը cache չափազանց արագ. Այն օգտագործում է Նվազագույն Վերջերս Օգտագործված (կազմվում) ալգորիթմը ղեկավարել օբյեկտները պահվում են հիշողության մեջ. Այդ բլոկը հիշողությունը քէշը, որը հիմնված է սեփական կազմվում Map իրականացման. Այս Քարտեզ իրականացումը շատ ավելի արագ, համեմատած LRUMap իրականացմանը կամ որեւէ այլ տեսակի Քարտեզ.
  • Disk Cache (ինդեքսավորվում): Սկավառակ քէշը, որն օգտագործվում է պահել տվյալների, երբ հիշողությունը cache լի. Երբ indexing օգտագործվում սկավառակի cache, կատարումը շատ ավելի արագ. Հերթ հիմնված գործընթաց, որն օգտագործվում է պահել տվյալների վրա սկավառակի. Սկավառակի cache ամբողջովին կոնֆիգուրացվող. A թեմա լողավազան, որն օգտագործվում է կառավարել հերթում աշխատողի թեմաները, որոնք նույնպես, որպեսզի այդ գործընթացը ավելի արագ.
  • JDBC Disk Cache: Սա եւս մեկ տեսակ սկավառակի cache, որը հուսալի է, արագ եւ լիովին configurable. Հիմնական պահում է JDBC համատեղելի բազա. Երկուսն էլ բանալիներ եւ արժեքները պահվում են տվյալների բազայում. Տվյալները պահվում է որպես Blob եւ ժամկետանց տվյալների տարրերն են նաեւ հեռացվել պարբերաբար. Thread լողավազան կարող է օգտագործվել նաեւ կառավարել հերթում աշխատողի թեմաները արագ վերամշակման.
  • TCP Կողային Cache: Սա մի մեխանիզմ է տարածել Պահված տվյալների վերաբերյալ բազմաթիվ տեղաբաշխված սերվերների. Սա նաեւ ամբողջովին կոնֆիգուրացվող caching համակարգը. Այն կարող է նաեւ օգտագործել UDP հայտնագործություն մեխանիզմ է ավելացնել հանգույցների առանց խախտելու ամբողջ համակարգը. The TCP Կողային Cache սահմանում կապեր ԱՊ սերվերների վրա, այլ հանգույցների եւ իրականացնում է պահեստային կառավարման. Մեկ սերվեր բավարար է կառավարել բազմակի շրջաններ.
  • Remote Cache օգտագործելով rmi: Սա եւս մեկ caching տարբերակը նախատեսված է JCS. Այս մեխանիզմի յուրաքանչյուրը հանգույց չի պահանջվում է կապել այլ հանգույցի. Այն հեռավոր cache սերվերը կարող է օգտագործվել որպես միացման կետի եւ յուրաքանչյուր հանգույց կարող է կապել դրա հետ. Հեռավոր cache սերվերը, որն օգտագործվում է անցկացնել serialized տարբերակը Ձեր օբյեկտի. Հեռավոր սերվերի կարող են խմբավորվել այլ սերվերների վերականգնել Failover.

կախվածությունն կոնֆիգուրացիա: Է հետեւյալ բաժնում մենք կքննարկենք մի պարզ դիմում օգտագործելով JCS. Նախքան շարժվում դեպի այն, մենք պետք է ունենա հետեւյալ կախվածությունը է CLASSPATH. Խնդրում ենք ներբեռնել գործարկվող բանկա եւ դրեց նրանց CLASSPATH կառուցելու դիմումը.

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

Աշխատանքային հետ JCS: Այս բաժնում մենք կքննարկենք տարբեր բաղադրիչների, Java caching համակարգի եւ կոնֆիգուրացիա մանրամասները. Մենք պետք է բացատրել յուրաքանչյուր բաղադրիչը աշխատանքային օրինակ.

Հետեւելով մի պարզ ծառայող դասի անցկացման ծառայող մանրամասները. Դասի պետք է իրականացնել Serializable ինտերֆեյս որպես իր տվյալների կլինի համառորեն. Այն պարունակում է շահող / սետտեր մեթոդներ կարդալու եւ գրելու տվյալները.

Listing1: Ցույց Employee դասը

հասարակական կարգի Employee իրականացնում java.io.Serializable{

մասնավոր String անունը;

մասնավոր String հասցեն;

մասնավոր String empid;

հասարակական Employee(String անունը, String հասցեն, String empid) {

this.name = անունը;

this.address = հասցեն;

this.empid = empid;

}

հասարակական String getName() {

վերադարձը անունը;

}

հասարակական առոչինչ setName(String անունը) {

this.name = անունը;

}

հասարակական String getAddress() {

հետադարձ հասցե;

}

հասարակական առոչինչ setAddress(String հասցեն) {

this.address = հասցեն;

}

հասարակական String getEmpid() {

վերադառնալ empid;

}

հասարակական առոչինչ setEmpid(String empid) {

this.empid = empid;

}

}

Ստորեւ ներկայացվում է հիմնական EmployeeManager դաս, որը ներկրում JCS փաթեթներ օգտագործել շրջանակային API- ները. Այն օգտագործում է քէշը տարածաշրջանում հայտնի է որպես 'EmpCache' է դնում եւ ստանալ տվյալների մեջ / ից հիշատակին. Տվյալները պահվում է հիշապահեստում օգտագործելով բանալին / արժեքը զույգ. The որոնման հիմնված է բանալիով հետ կապված յուրաքանչյուր արժեքի. Դիմումը ցույց ժամանակը / որոնման եւ հեռացումը օբյեկտների պահվում է cache.

Listing2: Ցույց EmployeeManager դասը

ներմուծման org.apache.jcs.JCS;

ներմուծման org.apache.jcs.access.exception.CacheException;

հասարակական կարգի EmployeeManager {

մասնավոր JCS cache;

հասարակական EmployeeManager()

{

փորձել

{

// Բեռնել քեշը

cache = JCS.getInstance( “empCache” );

// Initialize քեշը, Այստեղ տվյալները կարող են բեռնվել ժամանակ նախաստորագրումը

cache.put( “123”, նոր Employee( “Նշան”, “Detroit.USA”, “123” ) );

cache.put( “143”, նոր Employee( “ric”, “Seattle.USA”, “143” ) );

cache.put( “153”, նոր Employee( “Jhon”, “Chicago.USA”, “153” ) );

cache.put( “163”, նոր Employee( “իսկ”, “Houston.USA”, “163” ) );

}

բռնելը( ե CacheException )

{
e.printStackTrace();

}

}

հասարակական առոչինչ addEmployee( Employee EMP )

{

փորձել

{

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

}

բռնելը( ե CacheException )

{

e.printStackTrace();

}

}

Հանրային Employee getEmployee( String empid )

{

return ( ծառայող )cache.get( EmpID );

}

հասարակական առոչինչ removeEmployee( String empid )

{

փորձել

{

cache.remove( EmpID );

}

բռնելը( ե CacheException )

{

e.printStackTrace();

}

}

հասարակական ստատիկ անվավեր հիմնական( Լար[] args )

{

// Ստեղծել Employee մենեջեր

EmployeeManager empManager = new EmployeeManager();

// Ավելացնել աշխատակիցներին աշխատողի մենեջերի

/*empManager.addEmployee(նոր Employee(“name1”, “Հասցե 1”, “empid1”));

empManager.addEmployee(նոր Employee(“NAME2”, “address2”, “empid2”));

empManager.addEmployee(նոր Employee(“NAME3”, “address3”, “empid3”));*/

// Ստացեք աշխատակից

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

System.out.println( “Աշխատողի մանրամասները Ստացված քէշը: ” + emp.getName()+”-“+emp.getAddress());

// հեռացնել աշխատակից

empManager.removeEmployee(“123”);

// Հետո հեռացման աշխատողի

System.out.println( “Աշխատողի մանրամասները հետո հեռացնելու քէշը: ” + empManager.getEmployee(“123”) );

}

}

Հետեւելով է կազմաձեւման ֆայլը cache.ccf. Այն ունի բոլոր կոնֆիգուրացվող պարամետրերի իրենց արժեքներին. Առաջինը բաժինը լռելյայն cache տարածաշրջանը, որը կրում է լռելյայն արժեքները. Եթե ​​ոչ Custom տարածաշրջանը կազմաձեւված, ապա այդ լռելյայն արժեքները կօգտագործվեն. Երկրորդ բաժինը սահմանելու մաքսային քէշը տարածաշրջանը, որը empCache այստեղ. Այն սահմանում է մաքսային պարամետր արժեքները. Վերջինը բաժինը օժանդակ CACHE տարածաշրջանը, որը նկարագրում է սկավառակի cache եւ այլ հարակից պարամետրերի.

Listing3: Ցույց կազմաձեւման ֆայլը

# Դեֆոլտը 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 = Կեղծ

jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds = 3600

jcs.default.cacheattributes.ShrinkerIntervalSeconds = 60

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

jcs.default.elementattributes.IsEternal = Կեղծ

jcs.default.elementattributes.MaxLifeSeconds = 21600

jcs.default.elementattributes.IdleTime = 1800

jcs.default.elementattributes.IsSpool = ճիշտ է

jcs.default.elementattributes.IsRemote = ճիշտ է

jcs.default.elementattributes.IsLateral = ճիշտ է

# Նախապես սահմանված 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 = Կեղծ

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 = Կեղծ

# ԿԱՆ Օժանդակ caches

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:/Ջերմ

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

Ամփոփում: Այս հոդվածում մենք քննարկեցինք մասին caching հասկացությունների եւ մեկն է առավել հայտնի caching շրջանակներում հայտնի է որպես Java caching համակարգի. Հոդվածում նաեւ լուսաբանել տարբեր բաղադրիչների JCS եւ դրանց իրականացման. Վերջապես մենք քննարկել մի նմուշ աշխատանքային օրինակ հիման վրա Java Caching համակարգի շրջանակներում. The JCS շատ հզոր է եւ գրված է Java լեզվով. Պահեստավորման մեխանիզմը եւ դրա ներքին դիզայնը շատ հզոր բարձր կարդալ եւ ցածր դնում դիմումները. Ծրագրի իրականացման ամբողջովին կոնֆիգուրացվող ուստի այն կարող է ինտեգրված որեւէ նոր եւ առկա դիմումը առանց դնելու շատ ջանք.

Tagged on: ,
============================================= ============================================== Գնեք լավագույն տեխնոլոգիական գրքերը Amazon- ում,en,Էլեկտրականություն CT շագանակագույն էլեկտրաէներգիա,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share