Windows'da bir Java hizmeti için birden fazla iş parçacığı için birden fazla iş parçacığı için işlem yapmayı senkronize etmem gereken bir sorunum var.Java: konuları birden çok sunucu arasında eşitleme
Bu uygulamada, aynı JMS kuyruğundan çok sayıda tüketici ileti dizisi iletileri alıyorum. Mesajlar 3 veya 4 kişilik gruplar halinde gelir ve her gruptaki mesajların tamamen seri olarak işlendiğinden emin olmam gerekir. Thread1'in bir ileti çekip çekmediğinden emin olmak için bir tür senkronizasyon mekanizmasına ihtiyacım var, daha sonra thread2 o gruptan bir sonraki mesajı alır, thread2 işlenmesini bitirmeden önce işlenmeyi bitirmek için thread1 için bekler.
İletiler için dağıtılmış eşleme mekanizmalarıyla ilgili herhangi bir öneriniz var mı? Herhangi bir çözüm türü iyi olurdu (JMS çözümleri, dağıtılmış önbellekleme, vb.)
Not: Kullandığımız JMS sağlayıcısı ActiveMQ'dur.
O kısaca baktım Dağıtılmış Açık Kaynak. Sürekli yeni gruplar oluşturuyorsanız mesaj gruplarında ne olduğunu biliyor musunuz? İç karma sürekli büyür mü? Bir grubu "silmek" veya "sona erdirmek" için bir yol var mı, böylece grup sadece sonsuza dek bellekte oturmuyor mu? Cevap için teşekkürler, btw. –
Mesaj gruplarını kapatabilirsiniz (bağlandığım sayfada ayrıntılı olarak açıklanmıştır). Yine de yeni gruplar yaratmanın yükü konusunda emin değilim - muhtemelen bunun doğrudan kaynaktan nasıl yapıldığını kontrol etmek gerekiyor. – andri