Loading...

Роман Елизаров — Миллионы котировок в секунду на чистой Java

14,453 views

Loading...

Loading...

Rating is available when the video has been rented.
This feature is not available right now. Please try again later.
Published on Jun 3, 2013

Ближайшая Java-конференция Joker 2018 состоится 19-20 октября в Санкт-Петербурге.
Программа и билеты: http://bit.ly/2CYPSEi

Роман Елизаров — Миллионы котировок в секунду на чистой Java
Встреча JUG.ru 28.02.2013.

Написание программного обеспечения, работающего под большими нагрузками и обрабатывающего большие объемы данных, — это искусство, требующее настоящего умения, независимо от выбранного для реализации языка программирования. Большая часть техник и подходов, используемых в современном HighLoad, следует из здравого смысла и глубокого понимания архитектуры современных серверов.

Платформа Java имеет массу особенностей, которые, с одной стороны, делают её идеальным выбором для создания больших и сложных систем, но, с другой стороны, заставляют искать специфические подходы и шаблоны для написания высокопроизводительного кода. Этот доклад будет посвящён выделению объектов и сборке мусора, структурам данных и особенностям объектной модели Java, преимуществам и недостаткам компиляции машинного кода «на лету» — в общем, всему тому, чего нет в языках низках уровня типа C и C++ и что необходимо понимать и учитывать при реализации высоконагруженных систем на Java.

Доклад будет сделан на основе опыта, который был накоплен при создании и поддержки компанией Devexperts сервиса доставки рыночных данных в режиме реального времени под торговой маркой dxFeed. Помимо прочего, dxFeed является поставщиком данных от OPRA , обработка потоков данных которой потребует пропускную способность более 12М сообщений в секунду, при входящем потоке данных более 3Gbps уже к июлю этого года.

В тоже время, сервис dxFeed ориентирован на крупные финансовые компании, большая часть инфраструктуры которых обычно написана на языке Java. Поставщик данных, который на 100% использует технологии Java на всем пути их получения, нормализации, обработки, и доставки конечным клиентам, является наиболее подходящим для таких компаний в технологическом плане, при условии что выполняются все функциональные и нефункциональные требования.

Важной частью любого технологического решения является стоимость его создания и поддержи. Без учета этих факторов просто невозможно осознанно говорить о выборе той или иной технологии, о том или ином подходе, шаблоне и т.п. в рамках выбранной технологии. Безусловно, наибольшую пропускную способность и наименьшие задержки для любой задачи обработки данных можно обеспечить написав весь код в машинных кодах на ассемблере или, еще лучше, разработав специальный чип, решающий поставленную задачу на аппаратном уровне. Такого рода решения не будут обсуждаться в этом докладе.

Доклад будет сконцентрирован на тех решениях и подходах, которые, исходя из реального опыта, позволяют достичь разумный компромисс между производительностью и сложностью, что во многом и обуславливает выбор платформы Java. Реальное сравнение с классическими поставщиками данных, имеющих десятилетнюю историю развития и поддержки своего программного обеспечения на языках низкого уровня, показывает что особенности Java не являются препятствием к созданию высокопроизводительных систем обработки данных, а скорее наоборот, позволяют догнать и обогнать конкурентов за счет наличия большего инструментария, увеличения продуктивности работы программистов, и упрощения отладки и поддержки.

Loading...

When autoplay is enabled, a suggested video will automatically play next.

Up next


to add this to Watch Later

Add to

Loading playlists...