Разделение служб Tuxedo на сервер (соображения производительности)

Использование Tuxedo 11.1 на Solaris....

Вопрос касается вопросов производительности / администрирования при разделении служб на сервер. У нас есть работа по разработке, которая рассчитывает сократить около 250 услуг до 11 ситуаций, предлагаемых как 11 услуг. Идея заключается в том, что существует множество дублирующих сервисов, которые примерно возвращают одну и ту же информацию о клиентах, и было бы логично лучше упаковать этот переполненный "индивидуальный подход" (выполненный в основном для удовлетворения конкретных потребностей абонента) в ряде ситуаций клиента (например, "дайте мне все о контактной информации" или "все об отношениях с другими людьми"). Эти сервисные ситуации, скорее всего, будут доставлять больше данных и направлять, очевидно, больше вызовов в одно узкое место (которое должно масштабироваться горизонтально). Например, у нас есть такие сервисы, как "получение идентификатора клиента", которые вызываются 20 раз в секунду (в среднем 20 мс) по 3 доменам (для одной и той же базы данных). Получение "идентификации" кого-либо может иметь около 20 различных вкусов, несмотря на то, что возвращение является несколько полиморфным (может быть, дополнительное свойство здесь и там, но базовая информация одинакова).

Что мне интересно, это лучший способ для упаковки этих 11 ситуаций / услуг? Поместите их всю информацию на один сервер Tuxedo, а затем блокируйте экземпляры с помощью определенных сервисов (вероятно, только одного сервиса). Или один сервис на сервер для удобства чтения? Если я собираю все на одном сервере, какой удар по памяти происходит при закрытии? В память помещаются только закрытые сервисы или все, что определено для сервера? Вряд ли это серьезная проблема для нас (учитывая размер нашего парка), но любопытно.

Грубый пример (без подробных знаний о том, как именно реализует разработка) заключается в том, что службе, возможно, придется иметь дело с 20 с / с * 20 (сегодня разные варианты) * 3 (домены) = 1200 вызовов в секунду.;-)

1 ответ

Или один сервис на сервер для удобства чтения? Если я собираю все на одном сервере, какой удар по памяти происходит при закрытии?

GACK! не делай этого!

Весь смысл использования TUXEDO заключается в масштабируемости, ключом к масштабируемости с TUXEDO является тщательное решение, какими будут ваши услуги, независимо от читабельности или удобства программиста. Я проходил 10 или 12 сессий TUXEDO с различными заказчиками и организацией профессиональных услуг TUXEDO, некоторые были с Марком Каргесом, парнем, который написал первую строку кода TUXEDO.

Почти в каждом случае клиент в какой-то момент задает вопрос о том, как определяются услуги. Обычно возражения были такими: "это сделает клиентское приложение более сложным для кодирования" или "это кажется экстремальным". Окончательный ответ всегда был один и тот же, Марк Каргес имел откровенный ответ, он явно был очень привык к этим возражениям и отвечал примерно так:

Масштабируемость сложна, я знаю, как это сделать, и вот как.

Фактор № 1 при принятии решения о том, какими будут ваши службы, - это думать о подключении к базе данных, которое будет использовать служба. Идеальный сервис TUXEDO откроет одну таблицу в базе данных, и эта таблица будет иметь один индекс. Чем меньше ресурсов базы данных обслуживает служба, тем лучше. На самом деле невозможно получить 100% чистые совершенные сервисы TUXEDO, поэтому вы начинаете идти на компромисс, всегда помня о том, что главное - минимизировать ресурсы базы данных, требуемые какой-либо одной услугой.

Не беспокойтесь о самом TUXEDO, это база данных, которая препятствует масштабируемости, роль TUXEDO в том, чтобы увеличить масштаб базы данных. TUXEDO чрезвычайно легок и сам масштабируем, поэтому не беспокойтесь о влиянии ЛЮБОГО проектного решения на сам TUXEDO, ВСЕГДА учитывайте влияние проектного решения на ядро ​​базы данных.

Другие вопросы по тегам