Top Banner
JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel
22

JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel.

Apr 07, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: JBoss Cache Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

JBoss CacheDúvidas/Perguntas

Helves H. DominguesMAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel