Bu belge AI tarafından çevrilmiştir. Herhangi bir yanlışlık için lütfen İngilizce sürümüne bakın
Bir küme uygulaması dağıtmadan önce, aşağıdaki ön hazırlıkları tamamlamanız gerekir.
NocoBase uygulamasını küme modunda çalıştırmak için aşağıdaki eklentilerin desteği gereklidir:
| İşlev | Eklenti |
|---|---|
| Önbellek adaptörü | Dahili |
| Senkronizasyon sinyal adaptörü | @nocobase/plugin-pubsub-adapter-redis |
| Mesaj kuyruğu adaptörü | @nocobase/plugin-queue-adapter-redis veya @nocobase/plugin-queue-adapter-rabbitmq |
| Dağıtık kilit adaptörü | @nocobase/plugin-lock-adapter-redis |
| Worker ID tahsis edici | @nocobase/plugin-workerid-allocator-redis |
Öncelikle, yukarıdaki eklentiler için lisansları aldığınızdan emin olun (ilgili eklenti lisanslarını ticari eklenti hizmet platformu üzerinden satın alabilirsiniz).
Uygulama örneğinin kendisi dışındaki diğer sistem bileşenleri, ekibin operasyonel ihtiyaçlarına göre operasyon personeli tarafından seçilebilir.
Mevcut küme modu yalnızca uygulama örneklerini hedeflediğinden, veritabanı geçici olarak tek düğümü desteklemektedir. Eğer master-slave gibi bir veritabanı mimariniz varsa, bunu ara yazılımlar aracılığıyla kendiniz uygulamanız ve NocoBase uygulaması için şeffaf olmasını sağlamanız gerekir.
NocoBase'in küme modu, kümeler arası iletişimi ve koordinasyonu sağlamak için bazı ara yazılımlara ihtiyaç duyar. Bunlar şunları içerir:
Tüm ara yazılım bileşenleri Redis kullandığında, kümenin dahili ağında (veya Kubernetes'te) tek bir Redis hizmeti başlatabilirsiniz. Alternatif olarak, her bir işlev (önbellek, senkronizasyon sinyali, mesaj kuyruğu ve dağıtık kilit) için ayrı bir Redis hizmeti de etkinleştirebilirsiniz.
Sürüm Önerileri
NocoBase, sistemle ilgili dosyaları depolamak için storage dizinini kullanır. Çok düğümlü modda, birden fazla düğümün paylaşımlı erişimini desteklemek için bir bulut diski (veya NFS) bağlamanız gerekir. Aksi takdirde, yerel depolama otomatik olarak senkronize olmaz ve düzgün çalışmaz.
Kubernetes ile dağıtım yaparken, lütfen Kubernetes Dağıtımı: Paylaşımlı Depolama bölümüne bakın.
Küme modu, istekleri dağıtmak, uygulama örneklerinin sağlık kontrollerini yapmak ve hata durumunda devralmayı sağlamak için bir yük dengeleyiciye ihtiyaç duyar. Bu bölüm, ekibin operasyonel ihtiyaçlarına göre seçilmeli ve yapılandırılmalıdır.
Kendi barındırdığınız bir Nginx'i örnek alarak, yapılandırma dosyasına aşağıdaki içeriği ekleyin:
Bu, isteklerin farklı sunucu düğümlerine ters proxy aracılığıyla dağıtılıp işlendiği anlamına gelir.
Diğer bulut hizmeti sağlayıcıları tarafından sunulan yük dengeleme ara yazılımları için, lütfen ilgili sağlayıcının yapılandırma belgelerine bakın.
Kümedeki tüm düğümler aynı ortam değişkeni yapılandırmasını kullanmalıdır. NocoBase'in temel ortam değişkenlerine ek olarak, aşağıdaki ara yazılımla ilgili ortam değişkenlerinin de yapılandırılması gerekir.
Uygulama çok çekirdekli bir düğümde çalıştığında, düğümün çok çekirdekli modunu etkinleştirebilirsiniz:
Uygulama pod'larını Kubernetes'te dağıtıyorsanız, bu yapılandırmayı göz ardı edebilir ve uygulama örneklerinin sayısını pod replikalarının sayısı aracılığıyla kontrol edebilirsiniz.
NocoBase'deki bazı sistem koleksiyonları (collections) birincil anahtar olarak global benzersiz kimlikler (ID) kullanır. Küme genelinde birincil anahtar çakışmalarını önlemek için, her uygulama örneğinin Worker ID Tahsis Edici aracılığıyla benzersiz bir Worker ID alması gerekir. Mevcut Worker ID aralığı 0-31'dir, bu da her uygulamanın aynı anda en fazla 32 düğümde çalışabileceği anlamına gelir. Global benzersiz ID tasarımının detayları için @nocobase/snowflake-id adresine bakabilirsiniz.
Genellikle, ilgili adaptörlerin hepsi aynı Redis örneğini kullanabilir, ancak olası anahtar çakışması sorunlarını önlemek için farklı veritabanları kullanmak en iyisidir, örneğin:
Şu anda, her eklenti kendi Redis ile ilgili ortam değişkeni yapılandırmasını kullanmaktadır. Gelecekte, REDIS_URL'i genel bir yedek yapılandırma olarak kullanmayı düşüneceğiz.
Kümeyi Kubernetes ile yönetiyorsanız, yukarıdaki ortam değişkenlerini bir ConfigMap veya Secret içinde yapılandırabilirsiniz. Daha fazla ilgili içerik için Kubernetes Dağıtımı bölümüne bakabilirsiniz.
Yukarıdaki tüm hazırlıklar tamamlandıktan sonra, uygulama örneklerini yönetmeye devam etmek için Operasyonlar bölümüne geçebilirsiniz.