请问 Spring cloud Stream 和 Spring Amqp 之间的关系
周末打扰大家一下,目前在学习 Spring Amqp ,小弟知道 Amqp 与 RabbitMq 之间的关系,但是无意间发现了 Spring
Cloud Stream ,我裂开了,明明有 Spring AMQP 这层抽象了,怎么又整了一个 Spring Cloud Stream ?
求明白的大佬指导一波
周末打扰大家一下,目前在学习 Spring Amqp ,小弟知道 Amqp 与 RabbitMq 之间的关系,但是无意间发现了 Spring
Cloud Stream ,我裂开了,明明有 Spring AMQP 这层抽象了,怎么又整了一个 Spring Cloud Stream ?
求明白的大佬指导一波
抽象 Stream 处理中的 Source,Sink,和 EventListener,Kafka 和 AMQP 都是使用上统一了。
更底层的特别的 API 使用上还是要关注 Spring AMQP 和 Spring for Kafka 。
Spring 另外一个大杀器,Spring Cloud Data Flow, 可以连接各种 Source,Sink,中间处理可以用 Spring Cloud Function ( Serverless ),自己的 Serverless 程序可以安装到 SCDF 中,像命令一样重复使用。
不过我并不觉得 Cloud Stream 是个正确的方向,反正我没有在同一个项目里面使用多种 MQ 的需求。 程序员连自己该使用什么组件都没点 B 数的话,还算是合格的程序员么?
Cloud Stream 更多的解决互通问题,隐藏 MQ 的细节配置,猛看各种 MQ 用法差不多。
https://www.amqp.org/about/examples
RabbitMQ 还支持 MQTT 协议( Iot 处理协议,前几年的 Spring 大会演示过出租跟踪程序),还支持 STOMP 扩展,与 Websokcet 结合(消息走 RabbitMQ,减轻应用服务器压力)。这些在 Spring AMQP (与 RabbitMQ 一起使用时) 都支持很好。如果只关注消息, 在 Spring 中使用 Spring AMQP 和 RabbitMQ 基本是不二之选,太成熟了。
Kafka 在 Spring 中 Spring For Kafka 项目支持,除了做 Message Broker 外,Kafka 一个重要的角度是 Stream processing 。
RecketMQ 不作评价,我没用过。《《生态圈子》》》远不如上面两个,目前感觉还只是博眼球阶段。