2015-12-09 4 views
0

На данный момент я пишу этот вопрос, пока нет (любых) вопросов, отмеченных как [apache-kafka], так и [xslt].Преобразование на основе XSLT «сервис» поверх Apache Kafka

Я являюсь «классическим» партнером по связям с сообщениями (BizTalk, TIBCO, ...), который просто обнаруживает Kafka и ее IMPRESSIVE показатели производительности!

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

В самом деле, в моем мире интеграции , структура данных (т.е. формат), выставленная производителем, обычно радикально отличается от структуры данных (формата), ожидаемой потребителем. Например, у меня может быть, как производитель, данные форматирования приложения мэйнфрейма в структуре копий COBOL, в то время как мое приложение для front-end хочет использовать современный формат JSON.

[Update после 1-го ответа от @ morganw09dev]

Мне нравится предложение от @ morganw09dev, но я немного «раздражен» по созданию тем для потребителя специфичны. Я вижу «Тема B» (см. Первый ответ @ morganw09dev) в качестве темы, специфичной для моего внешнего приложения, для того, чтобы потреблять информацию из «Тема А». Для слов эта специфичность делает «Тема B» очередью ;-) Это прекрасно, но мне интересно, не будет ли такой дизайн «не повредить» родного кафки ;-)

Из моих предварительных чтений о Кафка, ясно, что я должен также узнать больше о Storm ... но затем я обнаружил Flink, что, согласно графику в https://flink.apache.org/features.html, выглядит намного более результативным, чем Storm, и теперь @ morganw09dev упомянул Samza! Это означает, что я не знаю, с чего начать ;-)

В конечном счете, я хотел бы закодировать свои преобразования в XSLT, и, в мире Java, я считаю, что Saxon является одним из ведущих процессоров XSLT. Знаете ли вы какую-либо «интеграцию» саксонского со штормом, Флинком или Самсой? Или, может быть, мой вопрос не имеет смысла, и я должен найти другой «способ» использовать Саксон с Кафкой.

На данный момент я пишу этот комментарий, пока нет (любых) вопросов, отмеченных как [saxon], так и любой из [apache-kafka], [apache-storm], [apache-flink] и/или [apache-samza].

ответ

1

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

Одна мысль состоит из трех частей архитектуры.

Kafka Topic A => Transformer => Kafka Topic B 

На ваш пример. Ваш продюсер подталкивает данные, относящиеся к COBOL, к теме Kafka A. Ваш трансформатор читает из темы A, выполняет необходимые преобразования, а затем выводит JSON в тему B. Как только в теме B приложение переднего плана может читать его в предпочтительном формате. Если вы поедете по этому маршруту, Transformer может быть изготовлен на заказ с использованием потребителя и производителя по умолчанию Kafka или использовать инфраструктуру потоковой передачи, такую ​​как Apache Samza или Apache Storm, чтобы помочь обработать обмен сообщениями. Как Samza, так и Kafka были первоначально разработаны в LinkedIn, и я считаю, что работа довольно естественно вместе. (Хотя я никогда не пробовал Самсу).

+0

Спасибо за ваш ответ! Я только что редактировал свой первоначальный вопрос после вашего ответа ... – Babelabout

+0

Вместо того, чтобы редактировать этот вопрос, вероятно, было бы лучше задать новый вопрос.Потому что теперь ваш вопрос требует практически совершенно иного решения, чем первоначально. – morganw09dev

+0

К сожалению ... Мое обновление приносит путаницу: -/Я до сих пор доволен вашим ответом на то, что у меня есть «Трансформатор» с использованием Apache Storm! Я просто хотел подчеркнуть тот факт, что вы не коснулись части «XSLT» моего первоначального вопроса, таким образом, мое обновление о том, «как использовать саксон со штормом». Это имеет смысл? – Babelabout