Заказчики: Атон Инвестиционная компания Москва; Финансовые услуги, инвестиции и аудит Продукт: Apache KafkaДата проекта: 2016/03 — 2017/09
|
Содержание |
Почему возникла необходимость внедрять интеграционную шину?
Что было[1]
- Интеграции между системами построены по принципу каждый с каждым.
- Используются различные форматы и технологии интеграции.
- Сложно реализовать планы по внедрению новых продуктов и систем.
Цели
- Упрощение интеграционного слоя в системах.
- Гибкая архитектура.
- Переиспользование сервисов.
Почему Open Source:
- Стоимость решения.
- Быстрый старт.
- Гибкость в выборе продукта.
- Большое community.
- Широкий функционал.
- Открытый исходный код.
Технологический стек - Транспортный уровень RabbitMQ, Apache Kafka Интеграционная логика - ServiceMix
RabbitMQ
Преимущества
- Идеально подходит для взаимодействия с информационными системами.
- Асинхронный обмен.
- Мультиплатформенный клиент (Java, .Net, Python и т.д.).
- Высокая производительность.
- Отказоустойчивость (кластер, репликация).
Kafka
Преимущества
- Идеально подходит для публикации информации.
- Сообщения не удаляются из топика, а хранятся в течение времени жизни.
- Хорошо справляется с большими объемами данных.
- Отказоустойчивость (кластер, репликация).
Apache ServiceMix
Основные компоненты:
- Karaf – OSGi контейнер.
- Apache Cxf – web / rest сервисы.
- Drools – бизнес правила.
- ActiveMQ – обмен сообщениями.
- Transformation – преобразование сообщений (например, xslt).
- Quartz – планировщик задач.
- MyBatis – SQL маппер.
- Набор адаптеров.
- Camel – интеграционный движок.
Интеграционная архитектура в Атон
- Основной способ обмена между системами и шиной – RabbitMQ.
- Основной формат обмена между системами и шиной – XML.
- Также используются другие технологии для систем, которые не поддерживают RabbitMQ и XML.
Пример 1. Удаленное открытие счета
Пример 2. Рыночные данные
Типы рыночных данных:
- Справочные данные по ценным бумагам.
- Real time данные (котировки):
- В среднем 50 сообщений в секунду.
- В пике 2000 – 3000 сообщений в секунду.
Используются для:
- Построения графиков.
- Отображения текущей цены.
- Расчета различных доходностей и показателей в портфеле клиента.
- Расчета доходности ПИФ.
- Отображения данных по ценным бумагам.
Режим работы:
- Запрос – ответ (справочные данные и котировки).
- Подписка на изменения (котировки).
Тестирование и мониторинг
Авто тесты:
- Тесты запускаются после установки обновлений и по расписанию каждый час.
- Работают в реальном окружении, не затрагивая нормальное функционирование системы.
- Результат в виде web страницы и рассылка по почте в случае ошибок.
Логирование сообщений:
- Сообщения записываются в БД.
- Можно отследить прохождение сообщения по шине.
- Web интерфейс для просмотра.
Основные интеграционные сервисы:
- Рыночные данные по ценным бумагам.
- Сервисы для получения / изменения данных из учетных систем (клиенты, счета, сделки и т. д.)
Примечания
- ↑ Из презентации "Построение интеграционной шины на базе Open Source" Перепелкин Вадим Начальник отдела архитектуры и интеграции приложений, 2017 год