Всем привет! Я в отпуске.
Если интересно, могу рассказать про отпуск подробнее.
Все же каждый отпуск я планирую сама, без турпутевок.
Но решила всё-таки закрыть серию постов про Apache Kafka.
Давайте рассмотрим вопрос:
«А есть ли разница между ESB и Apache Kafka?»
Начнём.
Форматы данных
Какие данные и в каком формате поступают в ESB / Kafka?
Это могут быть XML, JSON и пр. Форматы разные.
Данные поступают, потом данные выходят, и при этом они могут быть уже в другом формате.
Например, зашёл XML — вышел JSON.
То есть на этом уровне, на первый взгляд, какой-то принципиальной разницы нет.
Хранение данных
Данные поступают, но записываются ли они в базу?
Тут уже интереснее.
У ESB нет своей базы данных как источника данных.
У Apache Kafka тоже вроде как нет базы данных в классическом понимании, но Apache Kafka хранит логи сообщений.
При этом и в ESB тоже логируются вызовы, есть хранение сообщений для повторной доставки, ошибок и ретраев.
На поверхностном уровне может показаться, что и здесь разница не такая уж большая.
Маршрутизация
Данные поступили от систем-производителей, и их получают системы-потребители.
У Apache Kafka есть группы потребителей, которым отправляются данные.
У ESB — свои потребители, которым данные маршрутизируются по правилам.
И опять же, если смотреть очень обобщённо, кажется, что разницы особо нет.
На самом деле всё гораздо сложнее.
У Apache Kafka есть:
• топики,
• партиции,
• у каждого сообщения есть свой офсет,
• офсеты коммитятся,
• есть разные варианты доставки: at least once, at most once, exactly once,
• и ещё много важных моментов, которые напрямую влияют на архитектуру системы.
ESB же в отличие от Kafka умеет:
• управлять последовательностью вызовов,
• вызывать несколько систем по сценарию,
• делать условные переходы (if / else),
• реализовывать саги и компенсации на уровне интеграции.
ESB — это orchestration-driven архитектура.
Kafka — это event-driven архитектура.
Вот так быстро накидала мысли про разницу между ESB и Apache Kafka. А если вам есть, чем тоже поделиться на эту тему, жду в комментариях.
Полезно- ❤️
Если интересно, могу рассказать про отпуск подробнее.
Все же каждый отпуск я планирую сама, без турпутевок.
Но решила всё-таки закрыть серию постов про Apache Kafka.
Давайте рассмотрим вопрос:
«А есть ли разница между ESB и Apache Kafka?»
Начнём.
Форматы данных
Какие данные и в каком формате поступают в ESB / Kafka?
Это могут быть XML, JSON и пр. Форматы разные.
Данные поступают, потом данные выходят, и при этом они могут быть уже в другом формате.
Например, зашёл XML — вышел JSON.
То есть на этом уровне, на первый взгляд, какой-то принципиальной разницы нет.
Хранение данных
Данные поступают, но записываются ли они в базу?
Тут уже интереснее.
У ESB нет своей базы данных как источника данных.
У Apache Kafka тоже вроде как нет базы данных в классическом понимании, но Apache Kafka хранит логи сообщений.
При этом и в ESB тоже логируются вызовы, есть хранение сообщений для повторной доставки, ошибок и ретраев.
На поверхностном уровне может показаться, что и здесь разница не такая уж большая.
Маршрутизация
Данные поступили от систем-производителей, и их получают системы-потребители.
У Apache Kafka есть группы потребителей, которым отправляются данные.
У ESB — свои потребители, которым данные маршрутизируются по правилам.
И опять же, если смотреть очень обобщённо, кажется, что разницы особо нет.
На самом деле всё гораздо сложнее.
У Apache Kafka есть:
• топики,
• партиции,
• у каждого сообщения есть свой офсет,
• офсеты коммитятся,
• есть разные варианты доставки: at least once, at most once, exactly once,
• и ещё много важных моментов, которые напрямую влияют на архитектуру системы.
ESB же в отличие от Kafka умеет:
• управлять последовательностью вызовов,
• вызывать несколько систем по сценарию,
• делать условные переходы (if / else),
• реализовывать саги и компенсации на уровне интеграции.
ESB — это orchestration-driven архитектура.
Kafka — это event-driven архитектура.
Вот так быстро накидала мысли про разницу между ESB и Apache Kafka. А если вам есть, чем тоже поделиться на эту тему, жду в комментариях.
Полезно- ❤️