Twitter Heron пожертвовал Apache


Twitter Heron, платформа потоковой передачи и аналитики Twitter в реальном времени, была передана в дар программе Apache Incubator. Исходный код Heron был открыт в 2016 году, и он используется для обработки миллиардов событий, генерируемых в Twitter каждый день.

Heron — это механизм обработки данных с направленным ациклическим графом (DAG), обратно совместимый с Apache Storm, исходный код которого та же команда открыла в 2011 году и пожертвовала Apache. Heron был разработан для улучшения среды как для разработчиков, так и для работы через Storm, а также добавил встроенную поддержку Apache Aurora. Aurora — это фреймворк Mesos, разработанный Twitter для долгосрочных сервисов и заданий cron, который запускает приложения и сервисы в общем пуле машин и отвечает за их постоянную работу. Когда машины выходят из строя, Aurora разумно переносит эти задания на исправные машины.

Херон представил несколько новых идей в потоковой обработке, начиная с идеи обратного давления для регулировки темпа выполнения топологий на основе самого медленного компонента. Обратное давление — это термин, используемый для описания проблемы, когда данные накапливаются за более медленными элементами системы, потому что следующий элемент в конвейере заполнен, потому что он медленнее, поэтому не может принять больше данных. На диаграмме ниже болт B3 (в контейнере A) получает все свои входные данные от носика S1. B3 работает медленнее, чем другие компоненты. В ответ SM (Stream Manager) для контейнера A откажется от ввода от SM в контейнерах C и D, что приведет к заполнению буферов сокетов в этих контейнерах, что может привести к падению пропускной способности.

В такой ситуации сработает механизм противодавления Heron. SM в контейнере A отправит сообщение всем другим SM. В ответ другие SM изучат физический план контейнера и отключат вводы от носиков, которые питают болт B3 (в данном случае носик S1).

Как только болт с запаздыванием (B3) начнет нормально функционировать, SM в контейнере A уведомит другие SM, и маршрутизация потока в топологии вернется в нормальное состояние.

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

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

Поскольку исходный код Heron был открыт в 2016 году, разработки сообщества включают новые API-интерфейсы для Java и Python, а также API низкого уровня, аналогичный API-интерфейсу Storm для Python. Еще одно усовершенствование, достигнутое в сотрудничестве с Microsoft, — это Dhalion, технология, которая позволяет Heron самонастраиваться, лечить и стабилизировать, когда топологии испытывают неожиданное поведение из-за поведения системы и изменения скорости и объема данных.

Теперь Heron продолжит разработку в рамках проекта Apache Incubator.


Добавить комментарий