Ehcache supporta il multi-threading di default o richiede modifiche alla configurazione? Nel multi-threading la mia applicazione con Ehcache ho scoperto che il conteggio degli accessi al DB è in realtà in aumento, quindi non esiste una cache globale disponibile per tutti i thread nonostante il fatto che la mia cache sia tutta Singletons. Eventuali suggerimenti?Ehcache & MultiThreading
risposta
Questo può aiutare a rispondere alla tua domanda, da the FAQ:
E 'thread-safe per modificare i valori elemento dopo il recupero da una cache?
Ricordare che un valore in un elemento di cache è accessibile a livello globale da più thread. Non è intrinsecamente thread safe modificare il valore. È più sicuro recuperare un valore, eliminare l'elemento cache e quindi reinserire il valore.
(enfasi aggiunta da me)
Dal official documentation appare è appositamente costruito e testato per funzionare bene sotto l'accesso altamente concomitante, finché non si modificano Element
dai più thread .
Ma, ovviamente, questo non significa che l'uso di Ehcache rende sicure altre parti del codice. Se si recupera lo stesso valore da più thread (utilizzando la stessa chiave), l'istanza può essere condivisa e è necessario sapere cosa si sta facendo prima di modificarlo. La cosa migliore sembra usare oggetti immutabili come stringhe come valori memorizzati nella cache.
- 1. Differenza tra EHCache e EHCache-core
- 2. EHCache refresh
- 3. Hibernate 4 con ehcache richiede la libreria ehcache-core?
- 4. Comportamento memoria insufficiente Ehcache
- 5. Hibernate + EhCache = java.io.NotSerializableException
- 6. Hibernate EHCache vs MemCache
- 7. EHCache perdere oggetti
- 8. Redis o Ehcache?
- 9. Viewer per EhCache Index
- 10. Spring Ehcache MBean Monitoring
- 11. EHCache Configuration + Spring Boot: NoCacheRegionFactoryAvailableException
- 12. Ehcache disk store unclean shutdown
- 13. Cosa significa EH in EHCache?
- 14. benchmark guava cache vs ehcache
- 15. Come configurare maxEntriesLocalHeap in ehcache?
- 16. ehcache in base alla data
- 17. Multithreading Puzzles
- 18. Applicazioni multithreading
- 19. Riferimento multithreading?
- 20. Come dovrei usare le annotazioni @CachePut e @CacheEvict con ehCache (ehCache 2.4.4, Spring 3.1.1)
- 21. Come abilitare la registrazione di Ehcache
- 22. Non riesco a configurare JPA con ehcache
- 23. EhCache + Hibernate Cache non è attivo
- 24. messaggio di avviso ehcache "Nessuna configurazione trovata"
- 25. Quando overFlowToDisk viene attivato in EHCACHE?
- 26. java.lang.NoClassDefFoundError: org/hibernate/cache/EntityRegion configurazione EHCache
- 27. Configurazione di EHCache per Spring3.1.1 e Hibernate
- 28. hibernate di secondo livello ehcache miss
- 29. Come cancellare ehcache senza riavvio del server
- 30. EhCache overflow su disco su percorso specifico
Un'altra opzione è osservare l'API di blocco esplicito ehcache: http://ehcache.org/documentation/explicitlocking.html, poiché qualsiasi discussione su ehcache e multithreading è forse incompleta senza considerare anche questo aspetto. –