重要注意事项:
1. 尽管 Spring Cloud Stream Binder 中存在 Kafka 的整合,然而Spring Kafka 和 Spring Cloud Stream Kafka 在处理数据生产和消费是存在差异,因此不要混用
2. 当 Spring Cloud Stream 发送消息包含头信息时, KafkaDeserializer 实现方法回调时不会予以处理
3. 通常业务逻辑可以使用 @StreamListener 来监听数据(主体、载体),如果是需要更多头信息,需要 SubscribableChannel来实现
4. @StreamListener 与 SubscribableChannel 实现是存在差异的,以 Kafka 为例,SubscribableChannel 会触发 Kafka 自定义反序列化
5. 如果同一个应用同时使用 @StreamListener 和SubscribableChannel 时,两者会轮流处理
6. Spring Cloud Stream Kafka 是将对象序列化成 JSON,通过JSON 反序列化成对象(不经过自定义 Kafka 序列化/反序列化实现)