jboss cache helves h. domingues mac 5863 - sistemas de middleware avançados prof. francisco...
TRANSCRIPT
![Page 1: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/1.jpg)
JBoss Cache
Helves H. DominguesMAC 5863 - Sistemas de Middleware AvançadosProf. Francisco Reverbel
![Page 2: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/2.jpg)
Agenda
Visão Geral TreeCache / Demonstração POJOCache / Demonstração Cache Loaders Configurações
![Page 3: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/3.jpg)
JBoss Cache
Consiste em dois módulos– TreeCache
Dados em estrutura de árvore Replicação, transação Utiliza JGroups
– PojoCache “Acima” do TreeCache Replicação de objetos POJO Utiliza AOP
![Page 4: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/4.jpg)
Versão Atual
JBoss Cache 1.4.0 “Jalapeno” Integrado ao JBoss App. Server como
MBean service. Standalone – Pode rodar em qualquer Java
EE Server ( WebLogic e WebSphere) e também em um processo Java fora de um servidor de applicação.
![Page 5: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/5.jpg)
Aplicações
JBoss Cache como segundo nível de cache para o Hibernate
Replicação de objetos de sessão em um cluster Cópia local de dados “caros”:
– Banco de dados ( acesso mais lento )– Dados calculados ( faz um cálculo )– Parte de conjunto muito grande– Dados remotos, onde o tráfego é lento
![Page 6: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/6.jpg)
Organização dos dados
b c
a
d
e f
Full Qualified Name ( Fqn ) = /a/d/f
![Page 7: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/7.jpg)
TreeCache API
put (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)
![Page 8: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/8.jpg)
TreeCache Exemplo 1 / Demonstração
import 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");
![Page 9: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/9.jpg)
POJOCache API
putObject (Fqn path,Object pojo) Object getObject (Fqn path) removeObject(Fqn path)
O objeto que será posto no cache:– @org.jboss.cache.aop.annotation.InstanceOfPojoCacheable
![Page 10: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/10.jpg)
POJOCache Interceptadores
POJO Cache
Objeto
CacheInterceptor1 2
3
45
6
![Page 11: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/11.jpg)
POJOCache Exemplo 2 / Demonstração
// Import necessários…
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);
![Page 12: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/12.jpg)
POJOCache com TransaçãoExemplo 3 / Demonstração
//-- Import necessários…DummyTransactionManager.getInstance();
Properties prop = new Properties();prop.put(Context.INITIAL_CONTEXT_FACTORY,"org.jboss.cache.tra
nsaction.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");
//-- Criação do Person e Address, etc…tree.startService(); tree.putObject("/aop/joe", joe);
tx.begin();joe.setAge(41);tx.commit();
![Page 13: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/13.jpg)
POJOCache com CacheLoaderExemplo 4 / Demonstração
//-- Import necessários…//-- 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");}
![Page 14: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/14.jpg)
Cenários CacheLoadersRepositório compartilhado
Replicação
Repositório
CacheLoader CacheLoader
![Page 15: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/15.jpg)
Cenários CacheLoadersRepositório único
Replicação
Repositório
CacheLoader
![Page 16: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/16.jpg)
Cenários CacheLoadersRepositórios isolados
Replicação
Repositório
CacheLoader
Repositório
CacheLoader
![Page 17: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/17.jpg)
Configuração JBoss CacheModo de replicação
CacheMode– Sem replicação
LOCAL– Com replicação
REPL_SYNC REPL_ASYNC
– Com invalidação INVALIDATE_SYNC INVALIDATE_ASYNC
![Page 18: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/18.jpg)
Configuração JBoss Cache Transação
IsolationLevel– SERIALIZABLE– REPEATABLE_READ (default)– READ_COMMITTED– READ_UNCOMMITTED– NONE
NodeLockingScheme– OPTIMISTIC– PESSIMISTIC (default)
![Page 19: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/19.jpg)
Configuração JBoss CacheReplicação entre um subgrupo
buddyReplicationEnabled– TRUE/FALSE
buddyLocatorProperties– numBuddies = 5– ignoreColocatedBuddies = true
buddyPoolName
![Page 20: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/20.jpg)
Configuração JBoss CacheInvalidação de Cache “Eviction Policy”
EvictionPolicyClass– LRUPolicy, LFUPolicy, MRUPolicy e FIFOPolicy
Region ( fqn de um nó )– maxNodes, minNodes– timeToLiveSeconds– maxAgeSeconds
wakeUpIntervalSeconds
![Page 21: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/21.jpg)
Configuração JBoss CacheCache Loaders
Modo de operação– passivation= true/false– preload=(fqn do nó)– shared=true/false
Para cada cache Loaders– class– location (onde está o repositório)– async=true/false– purgeOnStartup=true/false– ignoreModifications=true/false
![Page 22: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel](https://reader036.vdocuments.mx/reader036/viewer/2022081604/5706384b1a28abb8238f5a6f/html5/thumbnails/22.jpg)
JBoss CacheDúvidas/Perguntas
Helves H. DominguesMAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel