ZooKeeper bakımı hakkında

ZooKeeper toplulukları, kaybolsa bile veri kaybı yaşamadan işlevsel kalacak şekilde tasarlanmıştır veya daha fazla ZooKeeper düğümüne sahip. Bu dayanıklılık, cihazlarda bakım yapmak için etkili bir şekilde Sistem kapalı kalma süresi olmayan ZooKeeper düğümleri.

ZooKeeper ve Edge hakkında

Edge'de, ZooKeeper düğümleri öğenin konumu ve yapılandırması hakkında yapılandırma değişikliklerinin farklı bileşenlerini bildirir. Tümü bir üretim sistemi için desteklenen Edge topolojileri en az üç ZooKeeper kullanmalıdır düğüm.

ZK_HOSTS ve ZK_CLIENT_HOSTS özelliklerini ZooKeeper düğümlerini belirten Edge yapılandırma dosyası. Örneğin:

ZK_HOSTS="$IP1 $IP2 $IP3"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"

Burada:

  • ZK_HOSTS, ZooKeeper düğümlerinin IP adreslerini belirtir. IP adresleri tüm ZooKeeper düğümlerinde aynı sırayla listelenmelidir.

    Çoklu Veri Merkezi ortamında, tüm Veri Merkezlerindeki tüm ZooKeeper düğümlerini listeleyin.

  • ZK_CLIENT_HOSTS, bu komut tarafından kullanılan ZooKeeper düğümlerinin IP adreslerini belirtir Yalnızca Veri Merkezi. IP adresleri, veri merkezidir.

    Tek bir Veri Merkezi yüklemesinde, bunlar ZK_HOSTS tarafından belirtilen düğümlerdir. kullanıyorsanız, her Veri Merkezi'nin Edge yapılandırma dosyası yalnızca Söz konusu Veri Merkezi için ZooKeeper düğümleri.

Varsayılan olarak, tüm ZooKeeper düğümleri oylayan düğümleri olarak belirlenir. Bu, düğümlerin tümü ZooKeeper lideri seçimine katılmaktadır. URL'nize Bunu belirtmek için ZK_HOSTS ile :observer değiştiricisi Düğüm seçmen değil, izleyici düğümüdür. Bir gözlemci düğümü liderin seçimi.

Birden çok Edge Veri oluştururken genellikle :observer değiştiricisini belirtirsiniz tek bir Veri Merkezi'nde çok sayıda ZooKeeper düğümü olması gerekir. Örneğin, İki Veri Merkezi ile 12 ana makineli Edge yüklemesi; Veri Merkezi 2'deki düğüm 9'da bulunan ZooKeeper ise gözlemci:

Daha sonra, Veri Merkezi 1 yapılandırma dosyanızda aşağıdaki ayarları kullanırsınız:

ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"

Veri Merkezi 2 için de:

ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"

Aşağıdaki bölümlerde lider, seçmen ve ilgili kişi hakkında daha fazla ayrıntıya yer verilir gözlemci düğümleri eklemeyi ve seçmen ve gözlemci düğümleri eklemeyle ilgili dikkat edilmesi gereken noktaları açıklama.

Liderler, takipçiler ve seçmenler ve gözlemciler

Çok düğümlü bir ZooKeeper yüklemesinde, düğümlerden biri lider olarak belirlenir. Diğer tüm ZooKeeper düğümleri takipçi olarak belirlenir. Okumalar herhangi bir cihazdan ZooKeeper düğümünde tüm yazma istekleri lidere yönlendirilir. Örneğin, yeni bir Mesaj İşlemci, Edge'e eklendi. Bu bilgi ZooKeeper liderine yazılır. Tüm takipçiler ve sonra verileri kopyalayın.

Edge'in kurulumu sırasında her bir ZooKeeper düğümünü seçmen veya gözlemci olarak tanımlarsınız. İlgili içeriği oluşturmak için kullanılan lider, tüm seçmen ZooKeeper düğümleri tarafından seçilir. Bir adayın seçimin yapılması için faaliyet gösteren ZooKeeper seçmen düğümlerinin çoğunlukla olması gerekir. CEVAP çoğunluk, tüm Veri Merkezlerindeki tüm seçmen ZooKeeper düğümlerinin yarısından fazlasının çalışır.

Seçmen sayısı oranında çoğunluk yoksa lider seçilemez. Bu senaryoda Zookeeper istekleri yerine getiremez. Bu, Edge Management'a istekte bulunamayacağınız anlamına gelir Çoğunluk geri yüklenene kadar sunucu, API isteklerini işleyin veya Edge kullanıcı arayüzüne giriş yapın.

Örneğin, tek bir Veri Merkezi kurulumunda:

  • Üç ZooKeeper düğümü yüklediniz
  • Tüm ZooKeeper düğümleri seçmendir
  • Çoğunluk, çalışır durumdaki iki seçmen düğümünden oluşur
  • Yalnızca bir seçmen düğümü varsa ZooKeeper topluluğu çalışamaz

İki veri merkezi bulunan bir kurulumda:

  • Veri Merkezi başına toplam altı düğüm olacak şekilde üç ZooKeeper düğümü yüklediniz
  • Veri Merkezi 1'de üç seçmen düğümü var
  • Veri Merkezi 2'de iki seçmen düğümü ve bir gözlemci düğümü vardır
  • Çoğunluk, her iki Veri Merkezindeki beş seçmene dayanmaktadır ve bu nedenle etkin olan üç seçmen düğümü
  • Yalnızca iki veya daha az seçmen düğümü varsa ZooKeeper topluluğu işlev

Düğümleri seçmen olarak eklerken göz önünde bulundurulması gereken gözlemciler

Sistem gereksinimleriniz, Edge'inize ek ZooKeeper düğümleri eklemenizi gerektirebilir teşekkür ederiz. ZooKeeper düğümleri ekleme belgeleri ek ZooKeeper düğümlerinin Edge'e nasıl ekleneceğini açıklar. ZooKeeper düğümleri eklerken oy veren veya gözlemci olmak üzere eklenecek düğüm türlerini göz önünde bulundurun.

Bir veya daha fazla seçmen düğümünün başarısız olması durumunda yeterli sayıda seçmen düğümünüzün olduğundan emin olmalısınız. ZooKeeper topluluğu çalışmaya devam edebilir, yani hâlâ çok sayıda seçmen kullanılabilir. Seçmen düğümleri ekleyerek çoğunluğun boyutunu büyütürsünüz. Böylece daha fazla seçmen düğümünün çökmesine tolerans gösterebilir.

Ancak, fazladan seçmen düğümleri eklemek yazma performansını olumsuz etkileyebilir çünkü yazma operasyonlar için lider üzerinde anlaşmaya varmak için yeterli çoğunluk olması gerekir. Lideri belirlemek için gereken süre seçmen düğümlerinin sayısına bağlıdır ve bu sayı, daha fazla seçmen düğümü eklendikçe artar. Dolayısıyla, tüm düğümlere oy veren kullanıcı kazandırmak istemezsiniz.

Seçmen düğümleri eklemek yerine gözlemci düğümleri ekleyebilirsiniz. Gözlemci düğümlerinin eklenmesinde artış ek bir yük teşkil etmeden genel sistem okuma performansını gözlemci düğümleri oy vermez ve çoğunluk boyutunu etkilemez. Dolayısıyla, bir gözlemci düğümü bu, topluluğun lider seçme kabiliyetini etkilemez. Ancak kaybeden gözlemci düğümler ZooKeeper topluluğunun okuma performansında düşmeye neden olabilir, çünkü onlar için Veri isteklerine yanıt verebilecek düğüm sayısı azaldı.

Apigee, tek bir Veri Merkezinde bile bağımsız olarak beşten fazla seçmen bulunmamasını önerir. sayısını görebilirsiniz. Apigee, iki Veri Merkezi'nde birden fazla veri merkezi olmayan (bir Veri Merkezi'nde beş, diğerinde 4 seçmen) daha çok Daha sonra istediğiniz kadar gözlemleyici düğümlerini gerektiği şekilde ayarlayın.

Zookeeper düğümünü kaldırma

Bir Zookeeper düğümünü kaldırmak istemenizin pek çok nedeni olabilir: Örneğin bir düğüm veya yanlış ortama eklenmiş olabilir.

Bu bölümde, bir Zookeeper düğümünün düğüm çalışmadığında ve çalışmadığında nasıl kaldırılacağı açıklanmaktadır erişilebilir olmalıdır.

Zookeeper düğümünü kaldırmak için:

  1. Sessiz yapılandırma dosyanızı düzenleyin ve eklediğiniz Zookeeper düğümünün IP adresini kaldırın tıklayın.
  2. Zookeeper'ın kalan ZooKeeper'ı yeniden yapılandırması için setup komutunu yeniden çalıştırın düğümler:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper setup -f updated_config_file
  3. Tüm Zookeeper düğümlerini yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
  4. Yönetim Sunucusu düğümünü yeniden yapılandırın:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  5. Tüm Yönlendiricileri yeniden yapılandırın:
    /opt/apigee/apigee-service/bin/apigee-service edge-router setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  6. Tüm İleti İşlemcilerini yeniden yapılandırın:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  7. Tüm Qpid düğümlerini yeniden yapılandırın:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  8. Tüm Postgres düğümlerini yeniden yapılandırın:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

Bakımla ilgili dikkat edilmesi gereken noktalar

Tam işlevli bir kostümde, herhangi bir hizmet kesintisi yaşamamak kaydıyla ZooKeeper bakımını yapabilirsiniz. işlemi bir defada tek bir düğümde gerçekleştirdi. Yalnızca tek bir ZooKeeper düğümünün çalışmadığından emin olarak bir karara varmak için yeterli sayıda seçmen sayısının her zaman mevcut olduğundan liderlik eder.

Bakım: birden çok veri merkezi

Birden fazla Veri Merkezi ile çalışırken ZooKeeper topluluğunun verilerin ve veri merkezlerini birbirinden ayırt etmektir. ZooKeeper derlemeleri, tüm cihazlardaki ZooKeeper düğümlerinin tamamını görüntüler veri merkezlerini tek bir yerde toplayın.

Belirli bir Veri Merkezi'ndeki seçmen düğümlerinin konumu, ZooKeeper'ın gerçekleştirdiği işlemleri yaparken etken değildir çoğunluk hesaplamalarını Tek tek düğümler Veri Merkezleri genelinde aşağı inebilir ancak çoğulluk ZooKeeper çalışmaya devam edecek.

Bakımın sonuçları

Çeşitli zamanlarda, bir ZooKeeper düğümünü bakım için devre dışı bırakmanız gerekebilir (veya oy verenler ya da ya da gözlemci düğümünden geçirmelisiniz. Örneğin, düğümde Edge sürümünü yükseltmeniz gerekebilir. ZooKeeper'ı barındıran makine başarısız olabilir veya düğüm başka bir bir neden olabilir.

Aşağı giden düğüm bir gözlemci düğümüyse ZooKeeper topluluğunun performansını düğüm geri yüklenene kadar sürdürür. Düğüm seçmen ise bir düğümün kaybedilmesi nedeniyle ZooKeeper topluluğunun çalışma durumunu etkileyebilir. Lider seçim sürecine dahil olması. Seçmen düğümünün tercih etme nedenlerinden bağımsız olarak elverişli seçmen sayısının yeterli olması açısından önemlidir.

Bakım prosedürü

Bakım prosedürlerini yalnızca bir ZooKeeper tarafından sağlandıktan sonra çalışır durumda olması gerekir. Burada, gözlemci düğümlerinin çalışır durumda olduğu ve bu düğümlerin çoğunluğun korunması için bakım sırasında seçmen düğümleri bulunmalıdır.

Bu koşullar karşılandığında, rastgele büyüklükteki bir ZooKeeper topluluğu, herhangi bir noktada tek bir düğüm kaybı yaşar. Ancak bu durum, veri kaybı veya performans üzerinde anlamlı bir etki oluşturmaz. Bu bir düğümde olduğu sürece topluluktaki herhangi bir düğümde bakım yapabilirsiniz. düğüm.

Bakım gerçekleştirmenin bir parçası olarak, ne tür bir hata olduğunu belirlemek için ZooKeeper düğümü (lider, seçmen veya gözlemci):

  1. ZooKeeper düğümünde yüklü değilse nc uygulamasını yükleyin:
    sudo yum install nc
  2. Düğüm üzerinde aşağıdaki nc komutunu çalıştırın. Buradaki 2181, ZooKeeper bağlantı noktasıdır:
    echo stat | nc localhost 2181

    Çıkış şu şekilde görünmelidir:

    Zookeeper version: 3.4.5-1392090,
    built on 09/30/2012 17:52 GMT
    Clients: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0)
    Latency min/avg/max: 0/0/0
    Received: 1
    Sent: 0
    Connections: 1
    Outstanding: 0
    Zxid: 0xc00000044
    Mode: follower
    Node count: 653

    Düğümlere ait çıkışın Mode satırında observer, leader veya follower (lider olmayan seçmen) değişiklik gösterir.

  3. Her bir ZooKeeper düğümünde 1. ve 2. adımı tekrarlayın.

Özet

ZooKeeper topluluğu üzerinde bakım yapmanın en iyi yolu, her defasında tek bir düğümde gerekir. Hatırlatma:

  • ZooKeeper'ın çalışmasını sağlamak için bakım sırasında seçmen düğümlerinin çoğunlukta olması gerekir çalışmaya devam etmesini sağlıyor.
  • Gözlemci düğümünün kaldırılması, çoğunluğu veya lider seçilebilmesini etkilemez.
  • Çoğunluk, tüm Veri Merkezlerindeki tüm ZooKeeper düğümleri genelinde hesaplanır.
  • Önceki sunucu çalışmaya başladıktan sonra sonraki sunucunun bakımına geçin.
  • ZooKeeper düğümünü incelemek için nc komutunu kullanın.