Преглед: В съвременната кеширане разработка на приложения е един от най-важните аспекти да бъдат разгледани по време на приложение проектиране. Най-честата цел кеширане е да се подобри производителността. Кеш може да бъде определена като сбор от предмети. Той съдържа Stateful обекти с ключове като уникални идентификатори. Най-честата съхранение за всеки кеширане система е в памет. Но кеширане система може да се съхранява елементи в диск, база данни или друга постоянна съхранение. Системата за Java кеширане (JCS) е разпределена рамка кеширане разработени в Java. Той подобрява работата на приложенията чрез предоставяне на подкрепа за управление на различни динамични кеширани data.JCS поддържа в памет и диск кеш. Рамката на JCS е напълно конфигурируеми чрез свойства на файлове и осигурява голяма гъвкавост при управление на кеша.
В тази статия ще обсъдим рамките JCS с работен пример.
Въвеждане: В повечето от уеб приложенията, данни се извличат от базата данни. Операцията за база данни е скъпо и отнема време. Сега на ден уеб приложенията са данни интензивно и първото време за реакция е основните критерии за нейния успех. Ако уеб приложението е често достъп до базата данни за всяка заявка след изпълнението му ще бъде бавно. Така уеб приложенията са следните различни техники за дизайн за намаляване на латентността пъти и увеличаване.
JCS е съставно разпределена система за кеширане, който работи на JDK 1.4 и горни версии. Изпълнението на JCS е много впечатляващо за ниско пут и високи приложения за четене.
Следват някои от основните характеристики на Java кеширане System
· Memory management
· Thread pool control
· Extensible framework
· Configurable runtime parameters
· Key based data retrieval
· Distributed composite cache
· Element event handling
JCS - The Composite кеша: В основата на Java кеширане система се основава на композитни кеш. Има четири вида кеш достъпни за всеки регион. Всякакъв вид на кеш може да бъде включен в конфигурацията JCS да стане активен. Следват четирите различни кешовете и техните детайли.
- Кеш паметта (LRU): Това е най-широко използваният основен механизъм за кеширане. кеш памет е изключително бърз. Тя използва най-отдавна използваните (LRU) алгоритъм за управление на обекти, съхранявани в паметта. кеш памет LRU се основава на собствената си реализация LRU Карта. Това изпълнение на карта е много по-бързо в сравнение с изпълнението LRUMap или всякакъв друг вид карта.
- Disk Cache (индексирани): Кешът за диск се използва за съхранение на данни, когато кеш паметта е пълна. Когато индексиране се използва с диск кеша, изпълнението много по-бързо. процес, основаващ се на опашка се използва за съхранение на данни върху диска. Кешът за диск е напълно конфигурируеми. A басейн конец се използва за управление на резбата на опашка за работници, които също правят процеса по-бърз.
- JDBC Disk Cache: Това е друг вид на диск кеш, който е надеждна, бързо и пълно конфигуриране. Основният съхранение е JDBC съвместима база данни. Както ключове и стойности се съхраняват в базата данни. Данните се съхраняват като BLOB и с изтекъл срок на елементите на данните, също се отстраняват периодично. Тема басейн също може да се използва за управление на теми опашка на работниците за по-бърза обработка.
- TCP Странично Cache: Това е механизъм, който да разпространявате кеширани данни за множество разпределени сървъри. Това също е напълно конфигурируеми система за кеширане. Тя също може да се използва UDP механизъм откритие, за да добавите възли, без да пречи на цялата система. В TCP Странично кеша установява връзки с гнездо сървъри на други възли и извършва управлението на съхранение. Един сървър е достатъчно, за да управлявате множество региони.
- Дистанционно Cache използване RMI: Това е още една опция за кеширане, предоставена от JCS. В този механизъм всеки възел не се изисква, за да се свържете с друг възел. дистанционно кеш сървърът може да се използва като точка за връзка и всеки възел може да се свърже с него. дистанционно кеш сървърът се използва за провеждане на поредица версия на вашия обект. Отдалеченият сървър може да се групира с други сървъри за възстановяване при срив.
конфигурация Зависимост: В следващия раздел ще обсъдим просто приложение, с помощта на JCS. Преди да се премести в нея, ние трябва да притежава следните зависимости в CLASSPATH. Моля, изтеглете изпълнимите буркани и ги поставя в CLASSPATH за изграждане на заявлението.
- JCS-1.3.jar
- Commons-logging.jar
- Commons-Lang-2.4.jar
- jar
Работа с JCS: В този раздел ще обсъдим различните компоненти на Java кеширане система и данните за конфигуриране. Ние ще обясним всеки компонент с работен пример.
След един прост Служител клас холдингови детайли на служителите. Класът трябва да приложат Serializable интерфейс като данните се продължава. Тя съдържа методи кариерист / сетер за данни четене и писане.
Listing1: Показване на служителите клас
обществени клас Employee изпълнява java.io.Serializable{
лично име String;
частни String адрес;
частни String empid;
обществен служител(име 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 пакети да се използват рамковите APIs. Той използва кеш регион, известен като "EmpCache" да се сложи и да получите данни в / от паметта. Данните се съхраняват в кеш паметта с помощта на двойка ключ / стойност. Извличането се основава на ключ, свързан с всяка стойност. Заявлението се показва допълнение / извличане и премахване на обекти, съхранявани в кеша.
Listing2: Показване EmployeeManager клас
org.apache.jcs.JCS внос;
внос org.apache.jcs.access.exception.CacheException;
обществени клас EmployeeManager {
частния JCS кеш;
общественото EmployeeManager()
{
опитвам
{
// Заредете кеша
кеш = JCS.getInstance( “empCache” );
// Инициализиране на кеша, Тук данни могат да се зареждат по време на инициализация
cache.put( “123”, нов служител( “Nick”, “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 Employee )
{
опитвам
{
cache.put( emp.getEmpid(), EMP );
}
улов( д CacheException )
{
e.printStackTrace();
}
}
Public Employee getEmployee( String empid )
{
return ( Служител )cache.get( EmpID );
}
обществени невалидни removeEmployee( String empid )
{
опитвам
{
cache.remove( EmpID );
}
улов( д CacheException )
{
e.printStackTrace();
}
}
публично статично невалидни основни( Низ[] опцията )
{
// Създаване на управителя на служител
EmployeeManager empManager = нов EmployeeManager();
// Добави служители на управителя на служител
/*empManager.addEmployee(нов служител(“файл1”, “Адрес 1”, “empid1”));
empManager.addEmployee(нов служител(“NAME2”, “Адрес2”, “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. Това определено стойности на персонализирания параметър. Последният раздел е ДОПЪЛНИТЕЛНО CACHE регион, който описва кеша на диска и други, свързани с параметрите.
Listing3: Показване на конфигурационен файл
# DEFAULT 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 = фалшива
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 = вярно
# Предварително дефинирани кеш РАЙОНИ
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 = фалшива
# НАЛИЧНИ ПОМОЩНИ кешира
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
Заключение: В тази статия сме обсъждали за кеширане на концепции и един от най-популярните рамка кеширане известен като Java кеширане System. В статията също покрита различни компоненти на JCS и тяхното изпълнение. В крайна сметка ние сме обсъждали проба работещ например на базата на Java кеширане System рамка. The JCS е много мощен и написан на Java език. Механизмът за съхранение и неговия вътрешен дизайн са много мощен за високо четене и ниски приложения пут. Изпълнението е напълно конфигурируеми, така че може да се интегрира с всяка нова и съществуващо приложение, без да излагат много усилия.