Я пытаюсь настроить активное развертывание всего в одном узле для WSO2 APIM 3.0.0 в соответствии с шагами, упомянутыми здесь. https://apim .docs.wso2.com/en/latest/SetupAndInstall/DeployingWSO2APIManager/SingleNode/configuring-an-active-active-deployment/

Шаг 5 интересный. Зачем нам это нужно? Разве вся конфигурация и настройки не хранятся в разных БД, настроенных для продукта? Что произойдет, если мы пропустим этот шаг? Есть ли способ избежать этого параметра, а также могу ли я иметь более 2 активных узлов в таком развертывании. Я смотрю на то, чтобы, вероятно, 3-4 узла в одном узле стояли на отдельных виртуальных машинах, и все они были связаны URL-адресом с балансировкой нагрузки, который могут использовать наши потребители.

Мы применяем исправления к нашим виртуальным машинам каждый месяц (после этого перезапускаем виртуальную машину), и время простоя для нас недопустимо. Таким образом, нам нужно по крайней мере 2 узла в одной настройке узла APIM, чтобы, если один из них не работает, другой мог обрабатывать трафик во время исправления. Каждый узел дает максимум 500TPS, а иногда у нас есть более 1500TPS. Итак, нужно 3-4 узла одного и того же, настроенного без сохранения состояния. Я надеялся, что общая база данных обеспечит немедленную репликацию всех настроек везде. swagger jsons и wsdl, которые мы импортируем, не сохраняются в общей базе данных или сохраняются в файлах в каталоге установки.

1
anup francis 26 Ноя 2019 в 22:16

1 ответ

Все конфигурации сохраняются в базе данных. Но развертываемые артефакты времени выполнения, которые обслуживают трафик API, хранятся в файловой системе. Таким образом, когда вы создаете API (или политику регулирования), он создается в файловой системе только одного узла. Затем эти артефакты необходимо скопировать на другие узлы. Вы можете использовать NFS, rSync или скопировать с помощью скрипта.

Наличие более 2 технически возможно. Однако идеальным развертыванием было бы разделение шлюзов (и менеджеров ключей) и их независимое масштабирование.

0
Bee 27 Ноя 2019 в 07:14
Итак, когда я использую существующий WSDL или swagger.json и импортирую его в один узел диспетчера API, конфигурация будет доступна только для этого конкретного узла, даже если используемая база данных является общей для разных узлов? Это звучит так из вашего ответа.
 – 
anup francis
27 Ноя 2019 в 15:46
Нет, когда вы создаете API, вы увидите это как на порталах издателей, так и на порталах магазинов, потому что они загружают API из базы данных. Но когда вы публикуете API, артефакт времени выполнения будет создан только в файловой системе этого конкретного узла. (в repository/deployments/server/synapse-configs/default/api/)
 – 
Bee
27 Ноя 2019 в 20:08