Разделение служб Tuxedo на сервер (соображения производительности) - PullRequest
0 голосов
/ 23 марта 2012

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

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

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

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

1 Ответ

0 голосов
/ 01 апреля 2012

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

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

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

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

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

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

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

...