Kafka потребитель и производитель для автоматически сгенерированных классов дел - PullRequest
0 голосов
/ 14 января 2019

У меня есть следующий вариант использования - из набора avro-контрактов - определенный как файлы .avsc - я генерирую классы сценариев Scala с библиотекой avrohugger. Я хотел бы представить различные типы контрактов на одну и ту же тему кафки.

Когда я пишу издателю, мне нужен способ указать, что каждый несвязанный контракт может быть передан методу submission. Поскольку я не контролирую, как создаются классы из avrohugger, я определяю класс типов, который является контекстом, связанным с общим типом ввода (например, T: Event), а затем отправляю информацию в Kafka. Это работает.

Моя проблема в том, как определить потребителя? Я хочу предоставить своим клиентам возможность выбрать, с каким сообщением они хотят работать, например. consumer(f: E => Unit): Unit. И вот где я застреваю. E должна быть абстракцией, а не конкретной реализацией. Это не позволяет мне использовать класс типов. Но я не могу коснуться тематических классов, как я уже говорил. Я могу обойти эту проблему, имея Out дубликат для каждого контракта, но его сложнее поддерживать, и это требует дополнительных затрат на бесполезные недолговечные сопоставления объектов и объектов.

...