Требование
Приложение относится к транзакциям (заявки на кредит)
Нагрузка - варьируется от 300 до 1000 из страны в страну
У нас есть 30 стран для поддержки
Каждая страна имеет: -
Own Schema (Prefix with country code)
Own JMS Queue (Prefix with country code)
Application/JMS Logs and folders (Prefix with country code)
Request/Response folders (Prefix with country code)
Через сторонние приложения / транзакции отправляются в JMS-очереди для какой бы страны они не принадлежали.
Решение
Мы можем создать исполняемый jar с загрузочной пружиной, код для обслуживания всех стран будет одинаковым.
Запустите 30 экземпляров этой автономной службы JMS, код страны будет передан в качестве аргумента. С этим кодом страны все соединения с БД, ведение журнала, запрос / ответ на запись, очередь JMS-соединения могут иметь префикс с кодом страны, передаваемым в качестве аргумента VM.
Имеют 1 экземпляр, внутри которого создается столько поток в соответствии со страной, и каждый поток управляет (1 соединение с БД, 1 JMS, соответствующее ведение журнала, запись в папку для каждой страны).
Может быть, есть лучший подход для обработки этого. ?
Сверху 2, какие могут быть плюсы и минусы?
Мы используем TIBCCO в качестве JMS из-за ограничений, которые мы можем использовать только TIBCCO. Дизайн БД также останется без изменений, так как он реализован в настоящее время, и существует множество SP, функций, триггеров, определяемых страной c.
Таким образом, мышление для мультитенантной системы не является вариант.