2011-11-26 29 views
10

2 webapps, bir yönetici webapp ve gerçek uygulama web sunucusunun kendim var. Her ikisi de bir mysql deposuna erişimi paylaşır ve Ehcache, kullanıcı aramasının REST API isteği başına arka ucuna çarpmasını önlemek için kullanıcı ayrıntılarını önbelleğe almak için kullanılır.İki webapps arasında Ehcache paylaşımı

Sahip olduğum sorun, kullanıcı kimlik bilgilerini güncellemek için admin uygulamasının (nadiren ekleyeceğim), parolayı veya kullanıcı adını söyleyebilmesinin veya bazı yetkilendirme düzeylerini değiştirebilmesinin vb. Olabileceğidir. Bu olduğunda, buna ihtiyacım var. Kullanıcı önbelleğinin geçersiz kılınması veya silinmesi, böylece ana web sunucusunun yeni kullanıcı ayrıntılarını önbelleğe almak için bir kullanıcı aramasının ardından db'ye ulaşması sağlanır.

Bu şu anda gerçekleşir, ancak önbelleğin temizlenmesi, ana istemci webapp'una görünmez.

İki webapps (hem iskelede hem de tomcatta barındırılan) arasında nasıl bir ehcache paylaşırım? Şu anda Jetty kullanıyorum ama Tomcat'e geçmeyi planlıyorum.

Spring 3, Jersey, Hazırda Beklet, MySQL ve Google Ehcache ek açıklamalarını kullanıyorum. Herhangi bir yardım için

teşekkürler.

cevap

3

Ehcache, bir web uygulaması olarak dağıtabileceğiniz bir REST API sahiptir. Böylece hem yönetici hem de uygulama webappı bir önbellek paylaşabilir.

5

Burada birkaç seçenek vardır: tek bir bildirim gruba içine uygulamaları katılmak için JGroups kullanın ve sonra belirli önbellek girdisi güncelleme/geçersiz hakkında uyarabilir

  • . Bu tür bir bildirim aldıktan sonra ana web uygulamanız yerel EhCache girişini güncelleyecektir.
  • Terracotta dağıtılmış önbelleği, EhCache uygulaması olarak ekleyebilirsiniz (aslında bu kodunuzu değiştirmez, çünkü yalnızca Ehcache API'sinin arkasına takılır). Ardından, EhCache'iniz dağıtılır, bu yüzden admin web uygulamanızda yapılan değişiklikler, gerçek web uygulamanız tarafından görülebilir. Not:Terracotta, ticari lisans gerektirir.
  • EhCache'yi kullanmak yerine,
    , birden çok uygulama arasında ortak bir önbelleğe sahip olan MemCached'u kullanabilirsiniz. Bu nedenle, yönetici web uygulamanızda yapılan değişiklikler, gerçek web uygulamanız tarafından görülebilir.Onlar MemCached
    tutorial
İlgili konular