2016-04-01 16 views
2

numaralı bir gecikme ile çalışıyorum. Amaç bir Mongo çoğaltma kümesi üyesinden okumaktır: Mongo ikincil çoğaltma kümesi üyesinden okunacak mopeli zorlamak için

  1. secondary
  2. delayed by x seconds
  3. priority: 0
  4. ayrı veri merkezinde yerleştirilemez.

DETAILS: Çalışan bir kongo çoğaltma kümesi kullanan bir üretim kümem var. Daha önce, Moped'in bazen diğer ikincil bölgelerden yüksek gecikme (diğer veri merkezlerinde uzaktan mevcut) ve istenen ikincil olmayandan okunduğu fark edilmiştir. Aynı sorunu çözmek için uzak fıkralarda bir gecikme ekledik.

Şimdi mongoid kullanan yeni bir analitik uygulamasına sahibim. SPECIFIC ikincil mongoid veya başka bir mücevher kullanarak ikincil olarak okuyabileceğim bir yol var mı? Örneğin, Mongoid/Moped/MongoDB'deki Otomatik Bulma özelliğini geçersiz kılmanın bir yolu var mı? Lütfen önerme

+1

Benzer bir sorunla da karşılaştım. Mongo kopyalarında bir üretim kümemiz vardı. Aynı kopyaya bağlı bir DR kümesi de vardı. DR üyelerinden biri ertelenmişti ama diğeri senkronize edildi. Üretim kümesinde Ruby/Mongo kimlik yapılandırmasını kullanıyorduk. Burada özellikle mongoid.yml'deki hostnamelerden bahsetmiştik. Ancak bazı günler geçtikten sonra Moped'in mongoid.yml'de belirtilmeyen ikincil sorgulara yollandığını fark ettik. Sorunu yeniden ele almak için ikincil gecikmeyi kullanıma sunduk. Mongoid versiyon 4.x –

cevap

1

tag_sets'i kullanabilirsiniz.

# Change the default read preference. Valid options for mode are: :secondary, 
# :secondary_preferred, :primary, :primary_preferred, :nearest 
# (default: primary) 
    read: 
     mode: :secondary_preferred 
     tag_sets: 
      - use: web 

bir yineleme tag_sets is documented here set yapılandırmak yolu: ayar 'okuma' altındaki görebilirsiniz Mongoid config documentation yılında , istediğiniz ikincil düğüme atanan tag_set belirtebilirsiniz açıkça okumak

Umarım bu size yardımcı olabilir. Bu, herkesin kullanmayı bilmediği çok gelişmiş ve güçlü bir özelliktir.