Suche senden
Hochladen
Infinispan - NoSQL für den Enterprise Java Alltag
•
0 gefällt mir
•
590 views
G
gedoplan
Folgen
Vortrag auf dem Expertenkreis Java von Christian Dedek, Orientation in Objects GmbH
Weniger lesen
Mehr lesen
Technologie
Bildung
Melden
Teilen
Melden
Teilen
1 von 47
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
Karin Patenge
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2
Ulrike Schwinn
Nimble Storage - Die neue Storage-Generation
Nimble Storage - Die neue Storage-Generation
Digicomp Academy AG
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
Karin Patenge
High Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der Cloud
AOE
Speeding up Java Persistence
Speeding up Java Persistence
gedoplan
Überblick Oracle Datenbank Hochverfügbarkeit
Überblick Oracle Datenbank Hochverfügbarkeit
Ileana Somesan
Private Cloud mit Open Source
Private Cloud mit Open Source
Daniel Schneller
Empfohlen
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
Karin Patenge
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2
Ulrike Schwinn
Nimble Storage - Die neue Storage-Generation
Nimble Storage - Die neue Storage-Generation
Digicomp Academy AG
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
Karin Patenge
High Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der Cloud
AOE
Speeding up Java Persistence
Speeding up Java Persistence
gedoplan
Überblick Oracle Datenbank Hochverfügbarkeit
Überblick Oracle Datenbank Hochverfügbarkeit
Ileana Somesan
Private Cloud mit Open Source
Private Cloud mit Open Source
Daniel Schneller
Überblick Oracle Datenbank 12c
Überblick Oracle Datenbank 12c
Ileana Somesan
Nosql Hintergründe und Anwendungen
Nosql Hintergründe und Anwendungen
Andy Whole
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Karin Patenge
Einblicke in Zend Server Cluster Manager
Einblicke in Zend Server Cluster Manager
Zend by Rogue Wave Software
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS
esentri AG
Zend Framework
Zend Framework
luckec
PRADO - Erstellung wiederverwendbarer Enterprise-Applikationen
PRADO - Erstellung wiederverwendbarer Enterprise-Applikationen
luckec
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?
Trivadis
Roadshow: What's new in Microsoft SQL Server 2016
Roadshow: What's new in Microsoft SQL Server 2016
Digicomp Academy AG
Leichtgewichtige Microservices mit Java EE 7
Leichtgewichtige Microservices mit Java EE 7
gedoplan
Web-GUIs mit Vaadin
Web-GUIs mit Vaadin
gedoplan
CDI
CDI
gedoplan
Java in the Cloud - am Beispiel der Google App Engineg
Java in the Cloud - am Beispiel der Google App Engineg
gedoplan
Spring Boot
Spring Boot
gedoplan
Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!
gedoplan
Speeding up Java Persistence
Speeding up Java Persistence
gedoplan
Java Persistence 2.0
Java Persistence 2.0
gedoplan
Neuerungen in JavaServer Faces 2.0
Neuerungen in JavaServer Faces 2.0
gedoplan
What's new in Java EE 7
What's new in Java EE 7
gedoplan
Photo talk
Photo talk
JAMAATON
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungen
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungen
gedoplan
Feige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-Umfeld
gedoplan
Weitere ähnliche Inhalte
Was ist angesagt?
Überblick Oracle Datenbank 12c
Überblick Oracle Datenbank 12c
Ileana Somesan
Nosql Hintergründe und Anwendungen
Nosql Hintergründe und Anwendungen
Andy Whole
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Karin Patenge
Einblicke in Zend Server Cluster Manager
Einblicke in Zend Server Cluster Manager
Zend by Rogue Wave Software
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS
esentri AG
Zend Framework
Zend Framework
luckec
PRADO - Erstellung wiederverwendbarer Enterprise-Applikationen
PRADO - Erstellung wiederverwendbarer Enterprise-Applikationen
luckec
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?
Trivadis
Roadshow: What's new in Microsoft SQL Server 2016
Roadshow: What's new in Microsoft SQL Server 2016
Digicomp Academy AG
Was ist angesagt?
(9)
Überblick Oracle Datenbank 12c
Überblick Oracle Datenbank 12c
Nosql Hintergründe und Anwendungen
Nosql Hintergründe und Anwendungen
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Einblicke in Zend Server Cluster Manager
Einblicke in Zend Server Cluster Manager
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS
Zend Framework
Zend Framework
PRADO - Erstellung wiederverwendbarer Enterprise-Applikationen
PRADO - Erstellung wiederverwendbarer Enterprise-Applikationen
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?
Roadshow: What's new in Microsoft SQL Server 2016
Roadshow: What's new in Microsoft SQL Server 2016
Andere mochten auch
Leichtgewichtige Microservices mit Java EE 7
Leichtgewichtige Microservices mit Java EE 7
gedoplan
Web-GUIs mit Vaadin
Web-GUIs mit Vaadin
gedoplan
CDI
CDI
gedoplan
Java in the Cloud - am Beispiel der Google App Engineg
Java in the Cloud - am Beispiel der Google App Engineg
gedoplan
Spring Boot
Spring Boot
gedoplan
Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!
gedoplan
Speeding up Java Persistence
Speeding up Java Persistence
gedoplan
Java Persistence 2.0
Java Persistence 2.0
gedoplan
Neuerungen in JavaServer Faces 2.0
Neuerungen in JavaServer Faces 2.0
gedoplan
What's new in Java EE 7
What's new in Java EE 7
gedoplan
Photo talk
Photo talk
JAMAATON
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungen
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungen
gedoplan
Feige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-Umfeld
gedoplan
Sonas Housing Annual Review 2011
Sonas Housing Annual Review 2011
Sonas_Housing
Jpa queries
Jpa queries
gedoplan
Kernel Masters inauguration slideshare
Kernel Masters inauguration slideshare
Kernel Masters
Java Batch – Der Standard für's Stapeln
Java Batch – Der Standard für's Stapeln
gedoplan
KM Placement Assistance Program
KM Placement Assistance Program
Kernel Masters
Java EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne Ballast
gedoplan
Andere mochten auch
(19)
Leichtgewichtige Microservices mit Java EE 7
Leichtgewichtige Microservices mit Java EE 7
Web-GUIs mit Vaadin
Web-GUIs mit Vaadin
CDI
CDI
Java in the Cloud - am Beispiel der Google App Engineg
Java in the Cloud - am Beispiel der Google App Engineg
Spring Boot
Spring Boot
Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!
Speeding up Java Persistence
Speeding up Java Persistence
Java Persistence 2.0
Java Persistence 2.0
Neuerungen in JavaServer Faces 2.0
Neuerungen in JavaServer Faces 2.0
What's new in Java EE 7
What's new in Java EE 7
Photo talk
Photo talk
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungen
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungen
Feige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-Umfeld
Sonas Housing Annual Review 2011
Sonas Housing Annual Review 2011
Jpa queries
Jpa queries
Kernel Masters inauguration slideshare
Kernel Masters inauguration slideshare
Java Batch – Der Standard für's Stapeln
Java Batch – Der Standard für's Stapeln
KM Placement Assistance Program
KM Placement Assistance Program
Java EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne Ballast
Ähnlich wie Infinispan - NoSQL für den Enterprise Java Alltag
Citrix Day 2014: Panalpina - global und doch nah
Citrix Day 2014: Panalpina - global und doch nah
Digicomp Academy AG
IPv6 Integration im Datacenter - wie komplex ist es wirklich?
IPv6 Integration im Datacenter - wie komplex ist es wirklich?
Swiss IPv6 Council
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
AOE
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
ICS User Group
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVA
Startimpuls at Microsoft w/ IFJ
Startimpuls at Microsoft w/ IFJ
Reto Laemmler
Presentation bp7 - citrix xen desktop
Presentation bp7 - citrix xen desktop
xKinAnx
Meet Magento - High performance magento
Meet Magento - High performance magento
AOE
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
ICS User Group
Tipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections Admins
Klaus Bild
ANEO | Automatisierung mit RedHat Ansible
ANEO | Automatisierung mit RedHat Ansible
CarolineAuerMarcher
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...
OPITZ CONSULTING Deutschland
Suse in der neuen Welt des Rechenzentrums - ein Beispiel
Suse in der neuen Welt des Rechenzentrums - ein Beispiel
ATIX AG
Oracle no sql-doag-datenbank_konferenz_juni_2014
Oracle no sql-doag-datenbank_konferenz_juni_2014
Gunther Pippèrr
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
confluent
Portale 2.0 mit Liferay
Portale 2.0 mit Liferay
inovex GmbH
Oracle Database 12c Release 2
Oracle Database 12c Release 2
oraclebudb
Oracle AVDF in der Praxis
Oracle AVDF in der Praxis
Trivadis
Geänderte Anforderungen an eine Data-Warehouse-Landschaft
Geänderte Anforderungen an eine Data-Warehouse-Landschaft
ISR Information Products AG
Skalierung & Performance
Skalierung & Performance
glembotzky
Ähnlich wie Infinispan - NoSQL für den Enterprise Java Alltag
(20)
Citrix Day 2014: Panalpina - global und doch nah
Citrix Day 2014: Panalpina - global und doch nah
IPv6 Integration im Datacenter - wie komplex ist es wirklich?
IPv6 Integration im Datacenter - wie komplex ist es wirklich?
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
GWAVACon 2015: SEP - Backuplösungen auf dem Prüfstand
Startimpuls at Microsoft w/ IFJ
Startimpuls at Microsoft w/ IFJ
Presentation bp7 - citrix xen desktop
Presentation bp7 - citrix xen desktop
Meet Magento - High performance magento
Meet Magento - High performance magento
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
Tipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections Admins
ANEO | Automatisierung mit RedHat Ansible
ANEO | Automatisierung mit RedHat Ansible
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...
Suse in der neuen Welt des Rechenzentrums - ein Beispiel
Suse in der neuen Welt des Rechenzentrums - ein Beispiel
Oracle no sql-doag-datenbank_konferenz_juni_2014
Oracle no sql-doag-datenbank_konferenz_juni_2014
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Portale 2.0 mit Liferay
Portale 2.0 mit Liferay
Oracle Database 12c Release 2
Oracle Database 12c Release 2
Oracle AVDF in der Praxis
Oracle AVDF in der Praxis
Geänderte Anforderungen an eine Data-Warehouse-Landschaft
Geänderte Anforderungen an eine Data-Warehouse-Landschaft
Skalierung & Performance
Skalierung & Performance
Infinispan - NoSQL für den Enterprise Java Alltag
1.
Infinispan - NoSQL
für den Enterprise Java Alltag Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.2 www.oio.de info@oio.de
2.
Ihr Sprecher Christian Dedek Trainer,
Berater, Entwickler Schwerpunkte Softwarearchitektur Qualitätsmanagement Performanceoptimierung © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 2
3.
Gliederung • NoSQL und
Java EE • Infinispan • Integrationsszenarien • Ausblick © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 3
4.
Gliederung • NoSQL und
Java EE • Infinispan • Integrationsszenarien • Ausblick © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 4
5.
NoSQL vs. Java
EE • NoSQL – – – – Datenspeicher ohne festgelegte Tabellenschemata skalieren horizontal keine strenge Spezifikation( viele gut diskutierte/erprobte Konzepte) viele Implementierungen auf verschiedenen Konzepten basierend • Java EE – strenge Spezifikation einer Softwarearchitektur – transaktionsbasierte Ausführung von Java-Komponenten – auf transkaktionsbasiertem Konzept beruhende Teilstandards • JTA/JCA/JPA/JMS/JDBC – Horizontale Skalierung als Konzept für High Availability • Antwortzeiten • Ausfall von Knoten – (insbesondere gedacht für Web-Anwendungen) © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 5
6.
NoSQL • Dokumentenorientierte Datenbanken •
Graphendatenbanken • Key-Value-Stores – Diskbasiert – RAM-Cache – Sortierte Key-Value-Stores • • • • Eventually Consistent Stores MultivalueDatenbanken Objektdatenbanken Spaltenorientierte Datenbank © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 6
7.
CAP-Theorem (nach E.
Brewer PODC Symposium 2000) • Consistency – roughly meaning that all clients of a data store get responses to requests that ‘make sense’. For example, if Client A writes 1 then 2 to location X, Client B cannot read 2 followed by 1. • Availability – all operations on a data store eventually return successfully. We say that a data store is ‘available’ for, e.g. write operations. • Partition tolerance – “The network will be allowed to lose arbitrarily many messages sent from one node to another” – if the network stops delivering messages between two sets of servers, will the system continue to work correctly? © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 7
8.
CAP Theorem und
JTA Consistency JTA JTA n.a. Availability Partion Tolerance BASE © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 8
9.
Data Grid vs.
Distributed DBMS Consistency Data Grid Distributed DBMS n.a. Availability Partion Tolerance BASE © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 9
10.
JSR 107(347) Elastic
Data Grid für Java EE Appserver Data Grid JSR 107 Servlet JSR 107 Node 1 EJB Node 1 Node 2 JSR 107 Secondary Store JSF Node 2 Node 3 Node 3 © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 10
11.
JSR 107 API
- Standard für einen Distributed HashTable • Distributed HashTable – javax.cache.Cache • ähnlich java.util.ConcurrentMap • Managementschnittstellen – javax.cache.CacheManager – javax.cache..CacheListener • Annotationen z.B. – @CacheResult,@CacheKeyParam,@CacheRemove. © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 11
12.
javax.cache.CacheLoader JEE Application 1. Get Cache CacheLoader 2. load •
Secondary Store © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 12
13.
javax.cache.CacheWriter JEE Application 1. Put Cache CacheWriter 2. store •
Secondary Store © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 13
14.
Expiration get Cache Y M X I put D F © 2014 Orientation
in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 14
15.
Gliederung • NoSQL und
Java EE • Infinispan • Integrationsszenarien • Ausblick © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 15
16.
Infinispan • Key-Value-Store – – – – Distributed HashTable(JSR
107/347) Transactional (JTA) Low-latency (RAM) Optional persist to disk • Open Source Data Grid Plattform (LGPL) – JBoss/Red Hat • Java and Scala • Nicht nur für die JVM gedacht • in verschiedenen Modi einsetzbar – Embedded – Client/Server(Data Grid) © 2014 Orientation in Objects GmbH Consistency Infinispan n.a. Availability Distributed DBs Partion Tolerance BASE Infinispan - NoSQL für den Enterprise Java Alltag 16
17.
Demo © 2014 Orientation
in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 17
18.
Local Embedded Mode JEE UI Application 0./3.
Query Data Access 1. get 4. Read Cache 2. Read Secondary Store © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 18
19.
Local Embedded Mode
II • Code in der gleiche VM wie infinispan • wenig Konfigurationsarbeit – Mit default Einstellungen DefaultCacheManager cacheManager = new DefaultCacheManager(); Cache<String, String> cache = cacheManager.getCache(); – Mit eigenen Einstellungen z.B: Clustereinstellungen DefaultCacheManager cacheManager = new DefaultCacheManager(„cluster.xml"); Cache<String, String> cache = cacheManager.getCache(); © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 19
20.
Infinispan und Java
EE Clustering JEE JEE UI UI Application Application 0./4. Query 0. Update Data Access Data Access 1. get 5. get Cache Cache 2. Read A 1.x Store A1 • Secondary Store © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 20
21.
Clustered Embedded Mode JEE JEE JEE UI UI UI Application Application Application 0./4.
Query Data Access 5. put n. n+k. Data Access Data Access Cache Cache 2. get Cache 3./6. load/Store • Secondary Store © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 21
22.
Demo © 2014 Orientation
in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 22
23.
Replication JEE JEE JEE Application Application Application 0. query Data Access Data
Access Data Access 2. Put © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag
24.
Invalidation JEE JEE JEE Application Application Application 0. query 3. query Data
Access 4. get Data Access Data Access 1. Put Cache © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 24
25.
Distribution [numOwner=2] JEE JEE JEE Application Application Application 0. query Data
Access Data Access Data Access 2. get Cache © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 25
26.
Client/Server Mode JEE JSE Non Java Application Application Application Data
Access Data Access Plenty Hotrod JVM JVM Cache Cache memcached Load/Store • © 2014 Orientation in Objects GmbH Secondary Store Infinispan - NoSQL für den Enterprise Java Alltag 26
27.
Demo © 2014 Orientation
in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 27
28.
Client/Server Mode II •
Starten des Servers erfordert die Angabe des Protokolls – bin/clustered.sh -Djboss.socket.binding.port-offset=xxx Djboss.node.name=nodeX • org.infinispan.client.hotrod.RemoteCacheManager RemoteCacheManager rcm = new RemoteCacheManager("192.168.3.120"); RemoteCache remoteCace = rcm.getCache(); String key = "hello"; remoteCace.put(key, "world"); © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 28
29.
Client/Server Remoting Remote Endpoint Protokoll Smart Routing Load Balancing Memcached Text - Vordefinierte Liste ReSTful Text - http Loadbalancer HotRod Binary + Dynamische Topologie JEE Application Groovy Application Data Access Data
Access JVM Cache © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 29
30.
CacheStore JEE Application 1. Put Cache CacheStore 2. store •
Secondary Store © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 30
31.
Eviction get Cache Y M X D F I put Memorymeter © 2014 Orientation
in Objects GmbH Strategie z.B. LRU Infinispan - NoSQL für den Enterprise Java Alltag 31
32.
Storage JPA Cache
Store • Implementierung mit JPA 2 • Speicherung mit applikationsspezifischem Datenmodell • Key muss Primärschlüssel der Entität sein – @Id, @EmbeddedId • Keine generierten Ids Cache<String, User> usersCache = cacheManager.getCache("myJPACache"); // configured for User entity class usersCache.put(„Gosling_James", new User()); Cache<Integer, Teacher> teachersCache = cacheManager.getCache("myJPACache"); // cannot do this when this cache is configured to use a JPA cache store teachersCache.put(1, new Teacher()); © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 32
33.
Storage JPA Cache
Store <namedCache name=„ myJPACache"> <loaders passivation="false" shared="true" preload="true"> <jpaStore persistenceUnitName="org.infinispan.loaders.jpa.confi gurationTest" entityClassName="org.infinispan.loaders.jpa.entity.Us er" /> </loaders> </namedCache> © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 33
34.
Gliederung • NoSQL und
Java EE • Infinispan • Integrationsszenarien • Ausblick © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 34
35.
DI-Container Integration © 2014
Orientation in Objects GmbH CacheStore Cache DAO Service TransactionIntereptor RemoteConnector DI Container Infinispan - NoSQL für den Enterprise Java Alltag 35
36.
Spring Integration • Spring
3.1 Cache Abstraktion • Infinispan Provider • Integration mit Spring DI für CacheManager und Cache <bean id="cacheManager" class="org.infinispan.spring.provider.SpringEmbeddedCacheManagerF actoryBean" p:configurationFileLocation="classpath:META-INF/oio-infinispanconfig.xml"> </bean> • Aktivieren des Cache – <cache:annotation-driven /> © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 36
37.
Spring Integration • Cache
Annotation @Cacheable("nachrichtenCache") public List<Nachricht> findAlleUngeleseneNachrichten() {…} @Cacheable("nachrichtenCache", key=#"projektId") public List<Nachricht> findNachrichtenFuerProjekt(BigInteger projektId) {…} • Deklarative Eviction @CacheEvict(value = "nachrichtenCache", allEntries = true) public void nachrichtMarkieren(BigInteger nachrichtId, boolean ungelesen) {…} © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 37
38.
CDI • Konfiguration und
Injizierung des Infinispan Cache – Cache Injizierung @Inject private Cache<String, String> cache; @Inject RemoteCache<String, String> remoteCache; • Partielle Unterstützung vom JSR 107 Annotationen © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 38
39.
CDI • Eigene Cache
Qualifier @javax.inject.Qualifier @Target({ElementType.FIELD, ElementType.PARAMETER, ElementType. METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface NachrichtenCache {} public class CacheCreator { @ConfigureCache("nachrichtencache") // cache name. @NachrichtenCache // cache qualifier. @Produces public Configuration specialCacheCfg() { return new ConfigurationBuilder() .eviction() .strategy(EvictionStrategy.LRU) .maxEntries(10) .build(); } } © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 39
40.
CDI • Injizierung des
eigenen Caches public class MyCDIComponent { @Inject @NachrichtenCache Cache<String, String> nachrichtenCache; } © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 40
41.
OR/M Integration Java Virtual
Machine PersistenceManager Anwendung Transient 1.Level Cache Instanz Instanz Instanz Transient Transient Transient Transient Transaction Connection QueryFacility DB 2.Level Cache Entity Cache Instanz Instanz Instanz Instanz © 2014 Orientation in Objects GmbH QueryCache Timestamp Cache Infinispan - NoSQL für den Enterprise Java Alltag 42
42.
Hibernate 2nd Level
Cache • Entity Cache – Key der Primärschlüssel – Cache lokal(default) oder repliziert – Replizierter Cache nicht empfohlen • Query Cache – Key ist query-name und Parameter Hash – Cache lokal(default) oder repliziert • Timestamps Cache – asynchrone Replikation(default) – keine eviction/expiration © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 43
43.
Hibernate second level
cache • JTA Transaktion Manager – Hibernate soll/muss JTA Manager nutzen. <property name="hibernate.cache.use_second_level_cache" value="true"/> <property name="hibernate.cache.use_query_cache" value="true"/> <property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.infinispan.InfinispanRegionFactory"/ > <property name="hibernate.cache.infinispan.cfg" value="/oioinfinispan-config.xml"/> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTSStandaloneTransactionMa nagerLookup"/> © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 44
44.
Gliederung • NoSQL und
Java EE • Infinispan • Integrationsszenarien • Ausblick © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 45
45.
Infinispan Ausblick • Map/Reduce
Support • Versioned Entries • Support Eventual Consistency (7.0 ?) • Optimierungen: – Transaktionen – Locking – RPC © 2014 Orientation in Objects GmbH Infinispan - NoSQL für den Enterprise Java Alltag 46
46.
? ? ? ? ? Fragen
? Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de 47
47.
Vielen Dank für
ihre Aufmerksamkeit ! Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de
Jetzt herunterladen