Использование Apache Kafka для взаимодействия АБС Б2 с новым-клиент банком – одно из значимых событий в череде реализуемых проектов компании CS. Почему эта новость достойна внимания, в чем ее важность? Зачем вообще это нужно банкам, какова текущая реализация и перспективы?
Для начала – пару слов о Kafka. Нет, не о всемирно известном писателе.
Apache Kafka – распределенная потоковая (стриминговая) платформа, этакий (определение из Википедии) программный брокер сообщений. «Брокер», то есть «посредник» – ключевое слово для понимания процесса. Грубо говоря, Kafka позволяет упорядочить множество (миллион плюс) сообщений (транзакций), выстраивая их в правильные очереди и оперативно обрабатывая. Основная функция Kafka – это управление параллельными потоками данных в реальном режиме времени с обеспечением надежной непрерывной передачи информации между системами и/или приложениями.
То есть если большие разветвленные системы генерируют огромное количество событий (транзакции, логи, данные мониторинга и доступа к ресурсам и прочее), то Kafka собирает соответствующие данные у издателей (producer), помещает их в свое распределенное хранилище сообразно категориям, или темам (topic), и раздает их подписчикам (consumer) согласно так называемым оформленным подпискам. Чем это отличается от других решений, предполагающих обработку очереди сообщений от издателя к подписчику? В чем здесь новаторство и прорыв?
Преимущества
Преимущества очереди сообщений Kafka:
Общая схема передачи информации с помощью Apache Kafka приведена на рисунке 1.
Рисунок 1. Передача информации с помощью Apache Kafka
А что у нас? Поставленная задача и текущая реализация
Итак, какую задачу мы решаем? Взаимодействие АБС Б2 с новым клиент-банком для передачи онлайн-сообщений о кредитах и депозитах физических лиц (из АБС Б2 клиент-банку передается информация, например, о транзакциях, состоянии счета и о других изменяющихся в динамике параметрах кредитных и депозитных сделок). Зачем нам для этого Kafka – уже понятно. Теперь о том, как именно мы используем возможности Kafka в работе банковской инфраструктуры.
Общий алгоритм передачи сообщений через потоковую платформу Kafka:
Для генерации исходящих сообщений реализован новый механизм, который при определенных действиях в АБС (создание/изменение объекта мониторинга – контрагента, сделки, счета и т.д.) генерирует соответствующие события и отправляет их в Oracle Advanced Queue. На эти события могут подписываться все, кому они интересны. Одним из таких подписчиков является подсистема взаимодействия через Kafka с клиент-банком, которая читает события из Oracle Advanced Queue и формирует сообщения. Для передачи сообщений используется приложение Java, которое получает сформированное сообщение из указанной подсистемы и записывает его в соответствующий топик Kafka. Клиент-банк не отвечает на исходящие сообщения.
На стороне клиент-банка формируются сообщения, которые отправляются в АБС, – входящие сообщения. При этом они не проходят через Oracle Advanced Queue (см. предыдущий пункт). Для передачи входящих сообщений используется Java-приложение, которое читает сообщения из топиков Kafka и передает в АБС для обработки. АБС обрабатывает входящее сообщение и отправляет результат обработки в виде исходящего сообщения (с помощью описанного выше механизма отправки исходящих сообщений).
Кафка явно что-то знал…
«Истинный путь идет по канату, который натянут не высоко, а над самой землей».
Франц Кафка
Как мы видим, использование платформы Kafka для интеграции между различными банковскими системами позволяет упорядочить и существенно ускорить передачу информации, а также обезопасить банковскую инфраструктуру от технических форс-мажоров.
(все поля обязательны к заполнению)
Постараемся связаться с Вами в ближайшее время.
Спасибо за проявленный интерес!