自动生成案例类的Kafka消费者和生产者

时间:2019-01-14 09:34:13

标签: scala apache-kafka avro

我有以下用例-来自一组Avro合同-定义为.avsc文件-我使用avrohugger库生成Scala用例类。 我想针对同一kafka主题提交不同类型的合同。

编写发布者时,我需要一种方法来指定每个不相关的合同都可以传递给submission方法。由于我无法控制如何从avrohugger创建类,因此我定义了一个类型类,该类是绑定到通用输入类型(例如T: Event)的上下文,然后将信息提交给Kafka。可行。

我的问题是如何定义消费者?我想让我的客户能够选择他们想要使用的消息,例如consumer(f: E => Unit): Unit。这就是我卡住的地方。 E应该是抽象的,而不是具体的实现。这不允许我使用类型类。但是正如我已经提到的,我无法触及案例类。我可以通过在每个合同中使用一个Out对应对象来解决该问题,但这比较难维护,并且会增加无用的短期对象和对象映射的额外成本。

0 个答案:

没有答案