【发布时间】:2018-04-28 23:32:52
【问题描述】:
在微服务架构中使用 Kafka 作为消息系统 使用 spring-kafka 与 spring-cloud-stream + spring-cloud-starter-stream-kafka 有什么好处?
Spring Cloud Stream 框架支持更多的消息系统,因此具有更模块化的设计。但是功能呢? spring-kafka 和 spring-cloud-stream + spring-cloud-starter-stream-kafka 的功能有差距吗? 哪个 API 设计得更好?
期待阅读您的意见
【问题讨论】:
-
也许我还没有说清楚,但是想要了解功能方面的差距是您无法轻松提取阅读文档的内容。库/框架的基础和 API 可能不同,但它们提供相同的功能吗?例如:仅使用 kafka 时 spring-kafka API/功能是否更丰富?
-
嗯,它们每个都有不同的目的。很难很快回答。有关更多信息,请参阅他们的项目页面:projects.spring.io/spring-integration、projects.spring.io/spring-kafka、cloud.spring.io/spring-cloud-stream
-
我知道使用活页夹概念的优势,但我只是问自己是否需要权衡,因为它建立在 spring-kafka 之上并使用它自己的 API。 spring-kafka 中每个即将推出的新功能都以某种方式“映射”在 spring 云流的概念中。此外,API 必须支持多个 binder,例如 rabbitmq,这就是 API 必须更加抽象/通用的原因。如果我错了,请纠正我,但这就是为什么我问自己在功能方面是否存在(或永远存在)差距,以及是否最好简单地使用 spring-kafka
-
嗯,没错。由于 Binder API 对于任何 Binder 实现都应该尽可能通用,因此目标协议的细节肯定会遗漏一些东西。如果你真的需要一些没有在 Kafka Binder 中实现的东西,那就只使用 Spring Kafka,如果你需要更多地控制消费者投票,那就只使用原始的 Apache Kafka。在大多数流式传输场景中,Spring Cloud Stream 的自动配置就足够了
-
感谢您的宝贵时间和 cmets!
标签: spring spring-integration spring-cloud-stream spring-kafka