Як сістэма Java Caching (JCS) завод?

Агляд: У сучасным кэшавання для распрацоўкі прыкладанняў з'яўляецца адным з найбольш важных аспектаў, якія неабходна ўлічваць пры распрацоўцы прыкладанняў. Найбольш распаўсюджанай мэтай кэшавання для павышэння прадукцыйнасці. Кэш можа быць вызначаны як сукупнасць аб'ектаў. Ён змяшчае аб'екты з захаваннем стану з ключамі ў якасці унікальных ідэнтыфікатараў. Найбольш распаўсюджаным для захоўвання любой сістэмы кэшавання ў памяці. Але сістэма кэшавання можа таксама захоўваць элементы ў дыску, базы дадзеных або любой іншай пастаяннага захоўвання. Сістэма Java Caching (JCS) з'яўляецца размеркаванай базы кэшавання распрацаваны ў Java. Гэта павышае прадукцыйнасць прыкладанняў, забяспечваючы падтрымку для кіравання рознымі дынамічнымі кэшаваныя data.JCS падтрымлівае ў памяці і дыскавых кэшаў. Структура JCS цалкам наладжваецца з дапамогай файлаў уласцівасцяў і забяспечвае вялікую гнуткасць ва ўпраўленні кэш.

У гэтым артыкуле я буду абмяркоўваць рамкі JCS з працоўнага прыкладу.

Увядзенне: У большасці вэб-прыкладанняў, дадзеныя здабываюцца з базы дадзеных. Аперацыя базы дадзеных з'яўляецца дарагім і патрабуе шмат часу. Цяпер дзень вэб-прыкладанні і інтэнсіўнай апрацоўкай дадзеных у першы раз адказ асноўныя крытэрыі яго поспеху. Калі вэб-дадатак часта доступ да базы дадзеных для кожнага запыту, то яго прадукцыйнасць будзе павольным. Такім чынам, вэб-прыкладанні ідуць розныя метады праектавання для скарачэння часу чакання і маштабы.

JCS ўяўляе сабой кампазіцыйны размеркаваная сістэма кэшавання, якая працуе на JDK 1.4 і верхнія версіі. Прадукцыйнасць JCS вельмі ўражвае нізкім ставіць і высокапрадукцыйных прыкладанняў для чытання.
Ніжэй прыведзены некаторыя з асноўных асаблівасцяў Java Caching System
· Memory management
· Thread pool control
· Extensible framework
· Configurable runtime parameters
· Key based data retrieval
· Distributed composite cache
· Element event handling

JCS - Кампазітны Cache: Аснова Java Caching System заснавана на кампазітнай кэшы. Ёсць чатыры тыпу кэшаў, даступных для кожнага рэгіёну. Любы тып кэша можа быць падлучаны да канфігурацыі JCS, каб зрабіць яго актыўным. Ніжэй прыведзены чатыры розных кэшаў і іх дэталі.

  • кэш-памяць (LRU): Гэта шырока выкарыстоўваецца базавы механізм кэшавання. Кэш-памяць вельмі хутка. Ён выкарыстоўвае найменш які выкарыстоўваецца (LRU) Алгарытм для кіравання аб'ектамі, захаванымі ў памяці. Кэш-памяць НДІ грунтуецца на яго ўласнай рэалізацыі LRU Карта. Гэтая рэалізацыя карт значна хутчэй у параўнанні з рэалізацыяй LRUMap або любы іншы тып карты.
  • Disk Cache (індэксавацца): Кэш дыска выкарыстоўваецца для захоўвання дадзеных, калі кэш памяць запоўненая. Пры індэксацыі выкарыстоўваецца з дыскавай кэша, прадукцыйнасць нашмат хутчэй. Працэс, заснаваны чарзе выкарыстоўваецца для захоўвання дадзеных на дыску. Кэш дыска цалкам наладжваецца. Паток пул выкарыстоўваецца для кіравання чаргой працоўных патокаў, якія таксама робяць працэс хутчэй.
  • JDBC Disk Cache: Гэта яшчэ адзін тып кэша дыска, які з'яўляецца надзейным, хуткі і цалкам наладжвальны. Асноўнае месца захоўвання базы дадзеных JDBC сумяшчальны. І ключы і значэння захоўваюцца ў базе дадзеных. Дадзеныя захоўваюцца ў выглядзе BLOB і мінулы элементы дадзеных таксама выдаляюцца перыядычна. Пул патокаў можа таксама выкарыстоўвацца для кіравання чарзе працоўных патокаў для паскарэння апрацоўкі.
  • TCP Бакавыя кэш: Гэта механізм для распаўсюджвання кэшаваных дадзеных на некалькіх размеркаваных серверах. Гэта таксама цалкам наладжваецца сістэма кэшавання. Ён можа таксама выкарыстоўваць UDP механізм пошуку для дадання вузлоў, не парушаючы ўсю сістэму. TCP Бакавое Кэш ўсталёўвае злучэння з разеткай серверамі на іншых вузлах і выконвае кіраванне захоўваннем дадзеных. Адзін сервер дастаткова для кіравання некалькімі рэгіёнаў.
  • Аддалены кэш з дапамогай RMI: Гэта яшчэ адзін варыянт кэшавання забяспечваецца JCS. У гэтым механізме кожны вузел не патрабуецца, каб злучыцца з іншым вузлом. Сервер аддаленага кэш можа быць выкарыстаны ў якасці кропкі падлучэння і кожны вузел можа злучыцца з ім. Сервер аддаленага кэш выкарыстоўваецца для захоўвання сериализованную версію вашага аб'екта. Аддалены сервер могуць быць згрупаваны з іншымі серверамі для аднаўлення аднаўлення пасля збою.

канфігурацыя залежнасцяў: У наступным раздзеле мы разгледзім простае прыкладанне з выкарыстаннем JCS. Перад тым як перайсці ў яго, мы павінны мець наступныя залежнасці ў CLASSPATH. Калі ласка, запампуйце выкананыя банкі і змясціць іх у CLASSPATH для стварэння прыкладання.

  • JCS-1.3.jar
  • Гра-logging.jar
  • Гра-Ланг-2.4.jar
  • jar

Праца з JCS: У гэтым раздзеле мы разгледзім розныя кампаненты Java Caching System і звесткі аб канфігурацыі. Мы разгадаем кожны кампанент з працоўнага прыкладу.

Ніжэй прыведзены просты супрацоўнік клас ўтрымлівальныя дэталі супрацоўніка. Клас павінен рэалізоўваць Сериализуемый інтэрфейс, як яго дадзеныя будуць захаваны. Ён змяшчае метады геттер / сетэр для чытання і запісы дадзеных.

Listing1: Адлюстраванне класа супрацоўнікаў

Адкрыты клас Employee рэалізуе java.io.Serializable{

прыватнае імя Радок;

прыватны адрас радкі;

прыватная Радок EmpID;

дзяржаўны служачы(імя Радок, радок адрасу, радок EmpID) {

this.name = імя;

this.address = адрас;

this.empid = EmpID;

}

Радок GetName грамадскасці() {

вяртанне імя;

}

грамадскага несапраўднымі SetName(імя Радок) {

this.name = імя;

}

Радок GetAddress грамадскасці() {

зваротны адрас;

}

грамадскага несапраўднымі setAddress(радок адрасу) {

this.address = адрас;

}

Радок getEmpid грамадскасці() {

вярнуць EmpID;

}

грамадскага несапраўднымі setEmpid(радок EmpID) {

this.empid = EmpID;

}

}

ніжэй асноўнай EmployeeManager клас, які імпартуе пакеты JCS, каб выкарыстоўваць рамкі API-інтэрфейсаў. Ён выкарыстоўвае вобласць кэша, вядомую як 'EmpCache' ставіць і атрымліваць дадзеныя ў / з памяці. Дадзеныя захоўваюцца ў кэш-памяці, з дапамогай пары ключоў / значэнне. Атрыманне дадзеных на аснове ключа, звязанага з кожным значэннем. Прыкладанне паказвае даданне / выманне і выдаленне аб'ектаў, якія захоўваюцца ў кэшы.

Listing2: Адлюстраванне класа EmployeeManager

імпарт org.apache.jcs.JCS;

імпарт org.apache.jcs.access.exception.CacheException;

грамадскага класа EmployeeManager {

уласны кэш JCS;

грамадскага EmployeeManager()

{

старацца

{

// загрузіце кэш

Кэш = JCS.getInstance( “empCache” );

// ініцыялізаваць кэш, Тут дадзеныя могуць быць загружаны падчас ініцыялізацыі

cache.put( “123”, новы супрацоўнік( “Нік”, “Detroit.USA”, “123” ) );

cache.put( “143”, новы супрацоўнік( “Ric”, “Seattle.USA”, “143” ) );

cache.put( “153”, новы супрацоўнік( “Jhon”, “Chicago.USA”, “153” ) );

cache.put( “163”, новы супрацоўнік( “і”, “Houston.USA”, “163” ) );

}

злавіць( е CacheException )

{
e.printStackTrace();

}

}

грамадскага несапраўднымі addEmployee( супрацоўнік EMP )

{

старацца

{

cache.put( emp.getEmpid(), Эмі );

}

злавіць( е CacheException )

{

e.printStackTrace();

}

}

Грамадскі Супрацоўнік getEmployee( радок EmpID )

{

return ( супрацоўнік )cache.get( EmpID );

}

грамадскага несапраўднымі removeEmployee( радок EmpID )

{

старацца

{

cache.remove( EmpID );

}

злавіць( е CacheException )

{

e.printStackTrace();

}

}

дзяржаўнай статычнай сілы асноўных( Радок[] аргументы )

{

// Стварыць менеджэр супрацоўніка

EmployeeManager empManager = новы EmployeeManager();

// Дадайце супрацоўнікаў да мэнэджэра супрацоўнікаў

/*empManager.addEmployee(новы супрацоўнік(“Имя1”, “адрес1”, “empid1”));

empManager.addEmployee(новы супрацоўнік(“Имя2”, “address2”, “empid2”));

empManager.addEmployee(новы супрацоўнік(“NAME3”, “address3”, “empid3”));*/

// атрымаць супрацоўніка

Супрацоўнік EMP = empManager.getEmployee(“123”);

System.out.println( “Звесткі пра супрацоўніка здабываюцца з кэша: ” + emp.getName()+”-“+emp.getAddress());

// выдаліць супрацоўніка

empManager.removeEmployee(“123”);

// Пасля выдалення супрацоўніка

System.out.println( “Звесткі пра супрацоўніка пасля выдалення з кэша: ” + empManager.getEmployee(“123”) );

}

}

Ніжэй прыводзіцца канфігурацыйны файл cache.ccf. Ён змяшчае ўсе канфігуруемы параметры з іх значэннямі. Першы раздзел вобласць кэшу, які мае значэння па змаўчанні. Калі ні адзін карыстацкі рэгіён не настроены, то будзе выкарыстоўвацца гэтыя значэнні па змаўчанні. Другі раздзел, які вызначае карыстацкую вобласць кэша, якая empCache here. Ён вызначыў значэння параметраў карыстацкіх. Апошні раздзел дапаможнай КЭШ вобласць, якая апісвае дыскавы кэш і іншыя параметры, звязаныя з.

Listing3: Адлюстраванне файла канфігурацыі

# DEFAULT КЭШ ВОБЛАСЦЬ

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

jcs.default.elementattributes.IsRemote = True

jcs.default.elementattributes.IsLateral = True

# Прадусталяваныя кэшаванне РЭГІЁНЫ

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

# Магчымыя ДАПАМОЖНЫЯ кэшуецца

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 = с:/тэмпература

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

Заключэнне: У гэтым артыкуле мы абмеркавалі аб канцэпцыях кэшавання і адзін з самых папулярных рамак кэшавання, вядомай як Java Caching System. У артыкуле таксама ахоплівае розныя кампаненты JCS і іх рэалізацыі. Нарэшце, мы абмеркавалі ўзор працоўны прыклад на аснове структуры Java Caching System. JCS з'яўляецца вельмі магутным і напісана на Java мове. Механізм захоўвання і яго ўнутраная канструкцыя вельмі магутны для чытання высокага і нізкага прымянення путаў. Рэалізацыя цалкам наладжваецца такім чынам яна можа быць інтэграваная з любым новым і існуючым дадаткам, не падвяргаючы асаблівых высілкаў.

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