使用Kafka作为微服务架构中的消息传递系统,使用spring-kafka与spring-cloud-stream + spring-cloud-starter-stream-kafka有什么好处?
Spring云流框架支持更多的消息传递系统,因此具有更多的模块化设计。但功能呢? spring-kafka和spring-cloud-stream + spring-cloud-starter-stream-kafka的功能之间是否存在差距?哪个API设计得更好?
期待阅读您的意见
带有kafka活页夹的Spring Cloud Stream依赖于Spring-kafka。所以前者所有功能都得到了后来的支持,但前者会更加重量级。以下是一些有助于您做出选择的要点:
在创建系统时使用Spring Cloud Stream,其中一个通道用于输入进行一些处理并将其发送到一个输出通道。换句话说,它更像是一个RPC系统来取代说RESTful API调用。
如果您打算使用事件采购系统,请使用Spring-Kafka,您可以在其中发布和订阅相同的流。这是Spring Cloud Stream不允许您轻松完成的事情,因为它不允许以下内容
public interface EventStream {
String STREAM = "event_stream";
@Output(EventStream.STREAM)
MessageChannel publisher();
@Input(EventStream.STREAM)
SubscribableChannel stream();
}
Spring Cloud Stream帮助您避免做的一些事情是: