【发布时间】:2020-09-09 08:19:45
【问题描述】:
不仅仅是一个问题,这是我面临的架构困境。 在 Kafka Producer 周围使用 REST 包装器并与之集成,而不是在我的代码中直接与 Kafka Producer 集成,这是一个好主意吗?我可以为我的高级类使用通用接口,而不是直接使用 KafkaImpl 来保持松散耦合以备将来使用。
【问题讨论】:
标签: rest apache-kafka architecture kafka-rest
不仅仅是一个问题,这是我面临的架构困境。 在 Kafka Producer 周围使用 REST 包装器并与之集成,而不是在我的代码中直接与 Kafka Producer 集成,这是一个好主意吗?我可以为我的高级类使用通用接口,而不是直接使用 KafkaImpl 来保持松散耦合以备将来使用。
【问题讨论】:
标签: rest apache-kafka architecture kafka-rest
如前所述,kafka-rest-proxy 会起作用。
我知道很多人用 Spring Kafka、Mircaut、Akka、Quarkus、Lagom/Play 来包装 Kafka 生产者/消费者,仅举几例。具体来说,Spring 具有可以提供“通用接口”感觉的消息传递绑定器。
这些都是web框架,在任何代码上加一个API/RPC抽象层就是definitely necessary in 12factor applications
【讨论】:
如果您可以选择,我可能会选择纯 Kafka 方法,因为您可以获得更好的吞吐量(客户端在批处理和期货方面非常智能)。
我不确定您是否通过添加休息包装器来解耦代码;您只是添加了另一个抽象级别,增加了维护负担并涵盖了 Kafka 的一些好处。
如果你真的需要使用 REST,你可以使用Kafka-Rest - 无需重新发明轮子!
【讨论】: