Мультитенант и новый вариант с несколькими экземплярами - это противоположность того, что вы ищете.Они предназначены для большого количества небольших экземпляров, а не для одного большого распределенного экземпляра с несколькими экземплярами сервера приложений, работающими с одной и той же базой данных.
Для поддержки кластеризации по умолчанию Moqui использует Hazelcast, хотя это делается с помощью ряда интерфейсов.это может быть реализовано с помощью других инструментов распределенных вычислений.Вот компонент, необходимый для запуска многосерверного кластера с Hazelcast:
https://github.com/moqui/moqui-hazelcast
Наиболее важными аспектами кластеризации являются аннулирование кэша для кэшей объекта (базы данных) и репликация веб-сеанса,Он также поддерживает другие инструменты для распределения рабочей нагрузки и данных, как указано в файле readme.
При распределении по нескольким центрам обработки данных или географическим регионам возникают гораздо более серьезные проблемы.Moqui Framework в первую очередь предназначен для транзакционных приложений, таких как бухгалтерский учет, управление запасами и т. Д., Которые требуют строгой согласованности транзакций.Конечная согласованность больших данных или стиля NoSQL и другие подобные подходы плохо работают с ERP и другими транзакционными приложениями, нет возможности использовать блокировки и тому подобное в базе данных для защиты от двойного расходования средств, двойного резервирования или выпуска инвентаря и т. Д..
Рассмотрим задачу распределенных реляционных транзакционных баз данных, то есть кластеров с несколькими основными базами данных.При настройках с несколькими мастерами транзакция должна распространяться и фиксироваться на всех главных узлах, прежде чем ее можно будет считать принятой.Это оказывает влияние на производительность, даже если все главные узлы находятся в одной и той же локальной сети, и неоправданное влияние на производительность, если главные узлы находятся в разных центрах обработки данных или географических регионах.
Основным решением этого является географическое разделение в приложенииУровень, как правило, отражает структуру крупного бизнеса с географическим разделением.Moqui имеет некоторую поддержку на уровне инструментов для такого рода вещей, используя Entity Sync или другие инструменты для передачи данных из географических регионов на центральный сервер (или кластер), где можно создавать отчеты и т. Д.Для такого развертывания не существует OOTB Entity Sync или другой конфигурации, это еще не то, что было востребовано.Это имеет смысл только для очень крупных глобальных корпораций, а не для рынка, где Moqui каким-либо образом использует мои знания.
Если вы хотите заняться чем-то вроде электронной коммерции и хотите, чтобы сайты электронной коммерции распространялись более широко, проблема легчечем координация инвентаризации или учета в нескольких глобальных организациях.Для этого просто создайте отдельные экземпляры электронной коммерции в разных центрах обработки данных, передавая данные заказа / и т. Д. В экземпляр Moqui ERP, очень похожий на любое типичное внешнее приложение электронной коммерции.