КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Проблемы распределения и масштабирования
Чем популярнее становятся корпоративные веб-системы, тем чаще предприятия сталкиваются с неспособностью своих серверных систем обрабатывать возрастающий объемы входящего интернет-трафика. Существует всего два способа повышения вычислительной мощности серверного звена. ♦ Масштабирование «вверх» (вертикальное масштабирование) подразумевает введение новых вычислительных и системных ресурсов ~ например, расширение памяти на отдельной машине. Эта разновидность масштабирования применима в том случае, если во внутренней архитектуре сервера приложений нет «врожденных» узких мест. Если это так, то при введении дополнительных системных ресурсов и повышении мощности процессора программное обеспечение сервера приложений должно полностью освоить новые ресурсы и тем самым повысить пропускную способность системы. ♦ Масштабирование «вширь» (горизонтальное масштабирование) компенсирует неизменность производительности существующей машины распределением сервера приложений между несколькими машинами. При предоставлении приложению дополнительных машин суммарные системные ресурсы и производительность повышаются. Считается, что из-за усложнения конфигурации и управления системой проводить горизонтальное масштабирование проблематично. Кроме того, при горизонтальном масштабировании на сервере приложений должны быть предусмотрены механизмы выравнивания нагрузки, обеспечивающие полное освоение клиентами дополнительных ресурсов на всех машинах. С другой стороны, системы, рассредоточенные на нескольких машинах, отличаются рядом преимуществ но сравнению с системами, работающими на одной машине. ♦ Дополнительное резервирование. Если на одной машине произойдет отказ, ее функции возьмут на себя другие. Среди причин отказов — нарушение электроснабжения, сетевые сбои, аварийные отказы операционной системы, отказы сервера приложений и даже ошибки в прикладном коде. ♦ Экономическая эффективность. Соотношение «цена/производительность» для сети машин с относительно небольшой производительностью иногда превосходит соответствующий показатель для одной высокопроизводительной машины. Во многих прикладных продуктах предусматриваются службы кластеризации, обеспечивающие горизонтальное масштабирование приложений. Здесь опять же следует подчеркнуть, что приложения кластеризации сильно отличаются друг от друга и архитектору следует обращать на эти различия пристальное внимание. Распределенные транзакции Многие EJB-серверы способны координировать транзакции с участием нескольких объектов из разных процессов в распределенной системе. При конструировании корпоративных систем возможность обработки распределенных транзакций посредством двухэтапного протокола фиксации зачастую играет очень важную роль. Архитектор, проектирующий систему EJB, должен принять тщательно продуманное решение относительно потребности в распределенных транзакциях как таковых. Дело в том, что управление ими связано со значительными издержками, которые возрастают пропорционально количеству участников транзакций. Если координировать транзакции между несколькими диспетчерами ресурсов (или базами данных) не требуется, значит, не нужен и двухэтапный протокол фиксации. Кроме того, при координации транзакций и исполнении процессов фиксации через сеть — от сервера или контейнера, с одной стороны, и внешним процессом управления транзакциями — с другой, — проходит ряд удаленных вызовов. Если реализация распределенных транзакций конкретного EJB-сервера предполагает координацию транзакций посредством дополнительных удаленных вызовов, весьма вероятно значительное замедление системы EJB и ухудшение общей масштабируемости системы. Опыт применения разных peaлизaцийJ2EE и механизмов управления объектной технологией свидетельствует о высокой вариативности показателей производительности управления распределенными транзакциями. Таким образом, архитекторы приложений должны хорошо ориентироваться во всех вариантах конфигурации и размещения, возможных в рамках данной службы транзакций. Организация пула ресурсов В распределенной системе следует уделять особое внимание управлению ресурсами приложения — в частности, соединениями с базами данных и сокетами. Методика организации пула ресурсов основывается на том обстоятельстве, что постоянный монопольный доступ к ресурсам требуется далеко не всем клиентам. В контексте EJB не каждому bean требуется монопольное соединение с базой данных. Значительно более эффективной представляется такая конфигурация системы, при которой соединения с базой данных организуются в рамках пула и многократно распределяются между различными клиентскими транзакциями. В случае применения пула соединений с базой данных конечных соединений оказывается значительно меньше, чем в размещенной системе EJB-компонентов. Поскольку создание соединений с базой данных и управление ими — операции весьма дорогостоящие, такая архитектура повышает общую масштабируемость приложения. Более того, за счет того что необходимость постоянного восстановления соединений отсутствует, повышается производительность приложения. Методика организации пула применима и к другим ресурсам — в частности, к сокетным соединениям и потокам. Организация пула компонентов предполагает, что выделять для каждого клиента специализированный ресурс не требуется. Среди стандартных настраиваемых параметров — контейнерные потоки, экземпляры сеансовых beans, емкость кэша bean-сущности и размер пула соединений с базой данных. Путем продуманной настройки этих параметров сокращается время отклика и повышается общая пропускная способность системы.
Дата добавления: 2015-04-25; Просмотров: 382; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |