2011-03-19 14 views
5

CQRS stili desen kullanıyorum (Olay Kaynağı Yok) Sadece okumalarımı ayırıp 2 ayrı uygulama sınırına yazıyor.Ölçekleme, CQRSish Desenli Birden Çok Okuma Veritabanları

Şimdilik, uygulama bir SQL 2008 Veritabanına karşı çalışıyor. İş yükünü dağıtmak için çoklu okuma veritabanları eklemek istiyorum.

SQL 2008'de tek bir veritabanını güncelleyebileceğim ve değişikliklerin gerçek zamanlı olarak diğer düğümlere çoğaltılacağı/çoğaltılacağı bir çözümüm var. Bu uygulama sadece tek bir "ana" veri tabanına yazılacağından, sadece tek yönlü bir yayılımın olması gerekir.

Eşler arası işlem çoğaltma hakkında okudum. Bunu kullanan herkes, çocuk düğümlerini güncellemede ne kadar gecikme var?

Diğer çözümler?

cevap

3

Etki alanı/komut tarafında olay kaynağı kullanmıyorsanız, sorun değil. Ancak bu, bir tür "olaylar" tablosunda, okunan taraftaki tüm olayları saklamanızı engellememelidir. Bunu yaparken, görünüm model tablolarınızı yok etmenizi ve okuma modeli veritabanınızdaki "olaylar" tablosunda depolanan tüm olaylardan yeniden oluşturmanızı sağlar.

Bunun nedeni, okuma tarafınızı ölçeklendirmektir. Mevcut okunan DB'niz baskı altında olduğundan ve artık bir ana "okuma veritabanı" dan çoğaltmaya çalışmak yerine yükü kaldıramayacağından, kendisini "olaylar" tablosundan çıkartan başka bir donanım üzerinde basit bir başka veritabanı örneği oluşturun. Ardından, bu ek okuma veritabanına alan adınız tarafından oluşturulan etkinliklere abone olun. (Neler olup bittiğini anladıktan sonra, önce abone olmayı ve daha sonra tabloyu doldurmak isteyeceksiniz, böylece yayınlanmış olan etkinlikleri kaçırmayın)

Bu, kardeşler olmak üzere iki okuma veritabanına sahip olmanızı sağlar. birbirleriyle konuş. Sadece etki alanından olayları dinlerler, okuma model tablolarını günceller ve alınan etkinlikleri bir çeşit yerel "olaylar" tablosuna eklerler.