1 / 22

JBoss Cache

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

more
Télécharger la présentation

JBoss Cache

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Agenda • Visão Geral • TreeCache / Demonstração • POJOCache / Demonstração • Cache Loaders • Configurações

  3. 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

  4. 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.

  5. 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

  6. Organização dos dados

  7. 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)

  8. 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");

  9. 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

  10. POJOCache Interceptadores

  11. 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);

  12. 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.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"); //-- Criação do Person e Address, etc… tree.startService(); tree.putObject("/aop/joe", joe); tx.begin(); joe.setAge(41); tx.commit();

  13. 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"); }

  14. Cenários CacheLoadersRepositório compartilhado

  15. Cenários CacheLoadersRepositório único

  16. Cenários CacheLoadersRepositórios isolados

  17. 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

  18. Configuração JBoss Cache Transação • IsolationLevel • SERIALIZABLE • REPEATABLE_READ (default) • READ_COMMITTED • READ_UNCOMMITTED • NONE • NodeLockingScheme • OPTIMISTIC • PESSIMISTIC (default)

  19. Configuração JBoss CacheReplicação entre um subgrupo • buddyReplicationEnabled • TRUE/FALSE • buddyLocatorProperties • numBuddies = 5 • ignoreColocatedBuddies = true • buddyPoolName

  20. 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

  21. 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

  22. JBoss CacheDúvidas/Perguntas Helves H. Domingues MAC 5863 - Sistemas de Middleware Avançados Prof. Francisco Reverbel

More Related