Ця документація була автоматично перекладена штучним інтелектом.
Перед розгортанням кластерного застосунку необхідно виконати наступні підготовчі кроки.
Для роботи застосунку NocoBase у кластерному режимі потрібна підтримка наступних плагінів:
| Функція | Плагін |
|---|---|
| Адаптер кешу | Вбудований |
| Адаптер синхронних сигналів | @nocobase/plugin-pubsub-adapter-redis |
| Адаптер черги повідомлень | @nocobase/plugin-queue-adapter-redis або @nocobase/plugin-queue-adapter-rabbitmq |
| Адаптер розподілених блокувань | @nocobase/plugin-lock-adapter-redis |
| Розподільник Worker ID | @nocobase/plugin-workerid-allocator-redis |
Перш за все, переконайтеся, що ви отримали ліцензії на вищезазначені плагіни (ви можете придбати відповідні ліцензії через платформу комерційних плагінів).
Інші системні компоненти, окрім самого екземпляра застосунку, можуть бути обрані персоналом з експлуатації відповідно до потреб команди.
Оскільки поточний кластерний режим орієнтований лише на екземпляри застосунків, база даних тимчасово підтримує лише один вузол. Якщо у вас є архітектура бази даних типу master-slave, вам потрібно реалізувати її самостійно за допомогою проміжного програмного забезпечення та забезпечити її прозорість для застосунку NocoBase.
Кластерний режим NocoBase покладається на певне проміжне програмне забезпечення для забезпечення зв'язку та координації між кластерами, включаючи:
Коли всі компоненти проміжного програмного забезпечення використовують Redis, ви можете запустити єдиний сервіс Redis у внутрішній мережі кластера (або Kubernetes). Також можна увімкнути окремий сервіс Redis для кожної функції (кеш, синхронні сигнали, черга повідомлень та розподілене блокування).
Рекомендації щодо версій
NocoBase використовує каталог storage для зберігання системних файлів. У багатонодовому режимі слід монтувати хмарний диск (або NFS) для підтримки спільного доступу між кількома вузлами. В іншому випадку локальне сховище не буде автоматично синхронізуватися, і система не зможе працювати належним чином.
При розгортанні за допомогою Kubernetes зверніться до розділу Розгортання Kubernetes: Спільне сховище.
Кластерний режим вимагає балансувальника навантаження для розподілу запитів, а також для перевірки стану та відмовостійкості екземплярів застосунків. Цю частину слід обирати та налаштовувати відповідно до операційних потреб команди.
Наприклад, для самостійно налаштованого Nginx додайте наступний вміст до файлу конфігурації:
Це означає, що запити проксуються та розподіляються на різні серверні вузли для обробки.
Щодо проміжного програмного забезпечення для балансування навантаження, що надається іншими постачальниками хмарних послуг, зверніться до документації з конфігурації, наданої відповідним постачальником.
Усі вузли в кластері повинні використовувати однакову конфігурацію змінних середовища. Окрім базових змінних середовища NocoBase, необхідно також налаштувати наступні змінні середовища, пов'язані з проміжним програмним забезпеченням.
Коли застосунок працює на багатоядерному вузлі, ви можете увімкнути багатоядерний режим вузла:
Якщо ви розгортаєте поди застосунків у Kubernetes, ви можете ігнорувати цю конфігурацію та контролювати кількість екземплярів застосунків за допомогою кількості реплік подів.
Деякі системні колекції в NocoBase використовують глобально унікальні ідентифікатори як первинні ключі. Щоб запобігти конфліктам первинних ключів у кластері, кожен екземпляр застосунку повинен отримати унікальний Worker ID через Розподільник Worker ID. Поточний діапазон Worker ID становить 0–31, що означає, що кожен застосунок може одночасно працювати до 32 вузлів. Детальніше про дизайн глобального унікального ID дивіться тут: @nocobase/snowflake-id
Зазвичай, усі пов'язані адаптери можуть використовувати один і той же екземпляр Redis, але краще використовувати різні бази даних, щоб уникнути можливих конфліктів ключів, наприклад:
Наразі кожен плагін використовує власні змінні середовища, пов'язані з Redis. У майбутньому ми можемо розглянути можливість уніфікації та використання REDIS_URL як резервної конфігурації.
Якщо ви використовуєте Kubernetes для керування кластером, ви можете налаштувати вищезгадані змінні середовища в ConfigMap або Secret. Додаткову інформацію можна знайти в розділі Розгортання Kubernetes.
Після завершення всіх вищезазначених підготовчих робіт ви можете перейти до Експлуатації, щоб продовжити керування екземплярами застосунків.