jboss cache
Post on 31-Jan-2016
35 views
Embed Size (px)
DESCRIPTION
JBoss Cache. Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel. Agenda. Visão Geral TreeCache / Demonstração POJOCache / Demonstração Cache Loaders Configurações. JBoss Cache. Consiste em dois módulos TreeCache Dados em estrutura de árvore - PowerPoint PPT PresentationTRANSCRIPT
JBoss CacheHelves H. DominguesMAC 5863 - Sistemas de Middleware AvanadosProf. Francisco Reverbel
AgendaViso Geral TreeCache / DemonstraoPOJOCache / DemonstraoCache LoadersConfiguraes
JBoss CacheConsiste em dois mdulosTreeCacheDados em estrutura de rvoreReplicao, transaoUtiliza JGroupsPojoCacheAcima do TreeCacheReplicao de objetos POJOUtiliza AOP
Verso AtualJBoss Cache 1.4.0 JalapenoIntegrado ao JBoss App. Server como MBean service.Standalone Pode rodar em qualquer Java EE Server ( WebLogic e WebSphere) e tambm em um processo Java fora de um servidor de applicao.
AplicaesJBoss Cache como segundo nvel de cache para o HibernateReplicao de objetos de sesso em um clusterCpia local de dados caros:Banco de dados ( acesso mais lento )Dados calculados ( faz um clculo )Parte de conjunto muito grandeDados remotos, onde o trfego lento
Organizao dos dados
b
c
a
d
e
f
Full Qualified Name ( Fqn ) = /a/d/f
TreeCache APIput (Fqn path,Object key, Object value)put (Fqn path,Object key, Map data)Object get (Fqn path,Object key)remove(Fqn path)remove(Fqn path, Object key)
TreeCache Exemplo 1 / Demonstraoimport org.jboss.cache.*;
TreeCache tree = new TreeCache();PropertyConfigurator config = new PropertyConfigurator();config.configure(tree, "META-INF/replSync-service.xml");
tree.startService();tree.put("/a/b/c", "chave", "valor1");
POJOCache APIputObject (Fqn path,Object pojo)Object getObject (Fqn path)removeObject(Fqn path)
O objeto que ser posto no cache:@org.jboss.cache.aop.annotation.InstanceOfPojoCacheable
POJOCache Interceptadores
POJO Cache
Objeto
CacheInterceptor
1
2
3
4
5
6
POJOCache Exemplo 2 / Demonstrao// Import necessrios
TreeCache tree = new PojoCache();PropertyConfigurator config = new PropertyConfigurator();config.configure(tree, "META-INF/replSync-service.xml");
Person joe = new Person();joe.setName("Joao Batista");joe.setAge(31);Address addr = new Address();addr.setCity("Sao Paulo");addr.setStreet("Bosque Saude, 56");addr.setZip(04136-222);joe.setAddress(addr);
tree.startService(); tree.putObject("/aop/joe", joe);
POJOCache com TransaoExemplo 3 / Demonstrao//-- Import necessriosDummyTransactionManager.getInstance();
Properties prop = new Properties();prop.put(Context.INITIAL_CONTEXT_FACTORY,"org.jboss.cache.transaction.DummyContextFactory");UserTransaction tx = (UserTransaction)new InitialContext(prop).lookup("UserTransaction");
PojoCache tree = new PojoCache();PropertyConfigurator config = new PropertyConfigurator();config.configure(tree, "META-INF/replSync-service.xml");
//-- Criao do Person e Address, etctree.startService(); tree.putObject("/aop/joe", joe);
tx.begin();joe.setAge(41);tx.commit();
POJOCache com CacheLoaderExemplo 4 / Demonstrao//-- Import necessrios//-- o mesmo do exemplo anterior
config.configure(tree, "META-INF/oodb-service.xml");tree.startService();
if(!tree.exists("/aop/joe")) {
print("Criando um entrada no cache"); //-- Cria Person e Addres..
}else {print("O Cache ja tem a entrada /aop/joe");}
Cenrios CacheLoadersRepositrio compartilhado
Replicao
Repositrio
CacheLoader
CacheLoader
Cenrios CacheLoadersRepositrio nico
Replicao
Repositrio
CacheLoader
Cenrios CacheLoadersRepositrios isolados
Replicao
Repositrio
CacheLoader
Repositrio
CacheLoader
Configurao JBoss CacheModo de replicaoCacheModeSem replicaoLOCALCom replicaoREPL_SYNCREPL_ASYNCCom invalidaoINVALIDATE_SYNCINVALIDATE_ASYNC
Configurao JBoss Cache TransaoIsolationLevelSERIALIZABLEREPEATABLE_READ (default)READ_COMMITTEDREAD_UNCOMMITTEDNONENodeLockingScheme OPTIMISTIC PESSIMISTIC (default)
Configurao JBoss CacheReplicao entre um subgrupobuddyReplicationEnabledTRUE/FALSEbuddyLocatorProperties numBuddies = 5 ignoreColocatedBuddies = truebuddyPoolName
Configurao JBoss CacheInvalidao de Cache Eviction PolicyEvictionPolicyClassLRUPolicy, LFUPolicy, MRUPolicy e FIFOPolicyRegion ( fqn de um n ) maxNodes, minNodes timeToLiveSeconds maxAgeSecondswakeUpIntervalSeconds
Configurao JBoss CacheCache LoadersModo de operaopassivation= true/falsepreload=(fqn do n)shared=true/falsePara cada cache Loaders class location (onde est o repositrio) async=true/false purgeOnStartup=true/false ignoreModifications=true/false
JBoss CacheDvidas/PerguntasHelves H. DominguesMAC 5863 - Sistemas de Middleware Avanados Prof. Francisco Reverbel