Свяжитесь с нами
Свяжитесь с нами

Использование Apache Kafka для взаимодействия АБС Б2 с новым-клиент банком – одно из значимых событий в череде реализуемых проектов компании CS. Почему эта новость достойна внимания, в чем ее важность? Зачем вообще это нужно банкам, какова текущая реализация и перспективы?

Для начала – пару слов о Kafka. Нет, не о всемирно известном писателе.

Apache Kafka – распределенная потоковая (стриминговая) платформа, этакий (определение из Википедии) программный брокер сообщений. «Брокер», то есть «посредник» – ключевое слово для понимания процесса. Грубо говоря, Kafka позволяет упорядочить множество (миллион плюс) сообщений (транзакций), выстраивая их в правильные очереди и оперативно обрабатывая. Основная функция Kafka – это управление параллельными потоками данных в реальном режиме времени с обеспечением надежной непрерывной передачи информации между системами и/или приложениями.

То есть если большие разветвленные системы генерируют огромное количество событий (транзакции, логи, данные мониторинга и доступа к ресурсам и прочее), то Kafka собирает соответствующие данные у издателей (producer), помещает их в свое распределенное хранилище сообразно категориям, или темам (topic), и раздает их подписчикам (consumer) согласно так называемым оформленным подпискам. Чем это отличается от других решений, предполагающих обработку очереди сообщений от издателя к подписчику? В чем здесь новаторство и прорыв?

Преимущества

Преимущества очереди сообщений Kafka:

  • Кластеризация (горизонтальная масштабируемость). Kafka работает как кластер на одном или нескольких серверах, которые могут охватывать разные центры обработки данных. Даже один Kafka-брокер – это кластер, и для того чтобы добавить второй, не требуется никаких особых настроек. При добавлении новой машины исключены простои, притом количество машин, добавляемых в кластер, не ограничивается.
  • Производительность и доступность. Пропускная способность Kafka – до миллиона сообщений в секунду. При этом обслуживание одной темы несколькими брокерами, дробление очередей на части и распределение их по кластеру позволяет существенно увеличить пропускную способность.
  • Хранение сообщений. Kafka хранит сообщения столько, сколько нужно (по-умолчанию – неделю).Таким образом, подписываясь на тему в Kafka, можно получить и вчерашние, и позавчерашние сообщения и… В то время как другие брокеры сообщений удаляют сообщения после успешной доставки. Кроме того, Kafka автоматически сохраняет сообщения на диск – для этого не требуется отдельных настроек.
  • Журнал транзакций (коммитов). Для каждой темы (топика) кластер Kafka ведет журнал, который разбивается на разделы (partition). Каждый журнал представляет собой неизменную последовательность записей с идентификационным номером (в эту структуру можно только добавлять записи, удалять или изменять их невозможно). Строгая упорядоченная структура – сердцевина Kafka. Разделы журнала позволяют ему масштабироваться за пределы размера, который способен вместить один сервер.

Мы говорим «кластеризация», подразумеваем – надежность, безопасность и отказоустойчивость.

Кластер Kafka из нескольких узлов остается работоспособным, даже если пара узлов выйдет из строя.

Общая схема передачи информации с помощью Apache Kafka приведена на рисунке.

170920_1

А что у нас? Поставленная задача и текущая реализация

Итак, какую задачу мы решаем? Взаимодействие АБС Б2 с новым клиент-банком для передачи онлайн-сообщений о кредитах и депозитах физических лиц (из АБС Б2 клиент-банку передается информация, например, о транзакциях, состоянии счета и о других изменяющихся в динамике параметрах кредитных и депозитных сделок). Зачем нам для этого Kafka – уже понятно. Теперь о том, как именно мы используем возможности Kafka в работе банковской инфраструктуры.

Общий алгоритм передачи сообщений через потоковую платформу Kafka:

  • Генерация и отправка исходящих сообщений.
    Для генерации исходящих сообщений реализован новый механизм, который при определенных действиях в АБС (создание/изменение объекта мониторинга – контрагента, сделки, счета и т.д.) генерирует соответствующие события и отправляет их в Oracle Advanced Queue. На эти события могут подписываться все, кому они интересны. Одним из таких подписчиков является подсистема взаимодействия через Kafka с клиент-банком, которая читает события из Oracle Advanced Queue и формирует сообщения. Для передачи сообщений используется приложение Java, которое получает сформированное сообщение из указанной подсистемы и записывает его в соответствующий топик Kafka.
    Клиент-банк не отвечает на исходящие сообщения.
  • Обработка и прием входящих сообщений.
    На стороне клиент-банка формируются сообщения, которые отправляются в АБС, – входящие сообщения. При этом они не проходят через Oracle Advanced Queue (см. предыдущий пункт). Для передачи входящих сообщений используется Java-приложение, которое читает сообщения из топиков Kafka и передает в АБС для обработки. АБС обрабатывает входящее сообщение и отправляет результат обработки в виде исходящего сообщения (с помощью описанного выше механизма отправки исходящих сообщений).

Кафка явно что-то знал…

«Истинный путь идет по канату, который натянут не высоко, а над самой землей».
Франц Кафка

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

Успешный запуск АБС Б2 является важной вехой для нашего Банка. Достижение бесперебойного, одноразового перехода устанавливает новый ориентир эффективности и инноваций в банковской сфере. Мы искренне благодарны команде компании CS за их преданность делу и упорный труд, которые способствовали успешной реализации этого проекта. Мы с нетерпением ожидаем дальнейшего партнёрства и продолжения внедрения инноваций на нашем пути трансформации

mihail-iovu_comitetul-de-conducere
Михаил Йову

Заместитель Председателя Правления, Moldindconbank

ОТП Банк успешно сотрудничает с компанией CS более 15 лет. За это время было реализовано ряд ключевых проектов, в частности внедрение отчетности для НБУ, операционной системы Б2, хранилища данных и интернет-банкинга для корпоративных клиентов. Мы высоко ценим способность CS предлагать комплексные и интегрированные решения, которые позволили нам автоматизировать end-to-end процессы и существенно повысить уровень цифровизации. Особенно отмечаем гибкость и индивидуальный подход команды CS, что позволяет адаптировать технологии под потребности нашего бизнеса и строить подлинное партнёрство.
zobrazhennya_viber_2025-02-18_14-58-03-941
Лилия Лазепко
Член Правления, ОТП Банк Украина
Новая платформа CFRONT позволяет ГЛОБУС БАНКУ уверенно осваивать новый для себя рынок розничного кредитования. Благодаря решению наших партнеров из CS весь процесс занимает считанные минуты: 1 минута на принятие решения и 10 минут на оформление всех необходимых для выдачи кредита документов. Уверена, это понравится нашим клиентам и партнерам. Получив такую многофункциональную и удобную систему, как CFRONT, банк ГЛОБУС имеет очень амбициозные планы и цели на рынке розничного кредитования.
olena-dmitrieva
Елена Дмитриева
Первая заместительница  Главы Правления, ГЛОБУС БАНК

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

tamar-thelidze-2-scaled-1
Тамар Тхелидзе
Заместитель Главы Правления, Банк Львов
КАК МЫ МОЖЕМ ВАМ ПОМОЧЬ?

    img