0

不仅仅是一个问题,这是我面临的架构困境。在 Kafka Producer 周围使用 REST 包装器并与之集成,而不是在我的代码中直接与 Kafka Producer 集成,这是一个好主意吗?我可以为我的高级类使用通用接口,而不是直接使用 KafkaImpl 来保持松散耦合以备将来使用。

4

2 回答 2

3

如果您可以选择,我可能会选择纯 Kafka 方法,因为您可以获得更好的吞吐量(客户端在批处理和期货方面非常聪明)。

我不确定您是否通过添加休息包装器来解耦代码;您只是添加了另一个抽象级别,增加了维护负担并涵盖了 Kafka 的一些好处。

如果你真的需要使用 REST,你可以使用Kafka-Rest——无需重新发明轮子!

于 2020-05-22T13:38:41.797 回答
1

如前所述kafka-rest-proxy,将起作用。

我知道很多人用 Spring Kafka、Mirconaut、Akka、Quarkus、Lagom/Play 来包装 Kafka 生产者/消费者,仅举几例。具体来说,Spring 具有可以提供“通用接口”感觉的消息传递绑定器。

这些都是web 框架,在 12factor 应用程序中绝对需要在任何代码上放置 API / RPC 抽象层。

于 2020-05-22T17:29:04.257 回答