jboss cache

Download JBoss Cache

Post on 31-Jan-2016

34 views

Category:

Documents

0 download

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 Presentation

TRANSCRIPT

  • 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