请问 Spring cloud Stream 和 Spring Amqp 之间的关系

2020-06-20 15:15:45 +08:00
 jinzhongyuan

周末打扰大家一下,目前在学习 Spring Amqp ,小弟知道 Amqp 与 RabbitMq 之间的关系,但是无意间发现了 Spring

Cloud Stream ,我裂开了,明明有 Spring AMQP 这层抽象了,怎么又整了一个 Spring Cloud Stream ?

求明白的大佬指导一波

2746 次点击
所在节点    Java
12 条回复
hantsy
2020-06-20 15:38:58 +08:00
Cloud Stream 更抽象些。

抽象 Stream 处理中的 Source,Sink,和 EventListener,Kafka 和 AMQP 都是使用上统一了。

更底层的特别的 API 使用上还是要关注 Spring AMQP 和 Spring for Kafka 。
hantsy
2020-06-20 15:41:43 +08:00
说到 Source,Sink 。

Spring 另外一个大杀器,Spring Cloud Data Flow, 可以连接各种 Source,Sink,中间处理可以用 Spring Cloud Function ( Serverless ),自己的 Serverless 程序可以安装到 SCDF 中,像命令一样重复使用。
jinzhongyuan
2020-06-20 15:49:34 +08:00
@hantsy 从循序渐进上来讲,还是先学习 Spring Amqp 比较好吧?
huntcool001
2020-06-20 16:07:16 +08:00
Amqp 现在就 RabbitMq 实现了... 这个协议学了有啥意义. RocketMQ, Kafka 都没实现.
xuanbg
2020-06-20 16:08:16 +08:00
RabbitMq 是基于 Amqp 标准的实现,Spring Amqp 可以连接任何支持 Amqp 标准的 MQ 。Cloud Stream 则是对 Spring Amqp 等又封装了一层,可以连接更多种类的 MQ 。

不过我并不觉得 Cloud Stream 是个正确的方向,反正我没有在同一个项目里面使用多种 MQ 的需求。 程序员连自己该使用什么组件都没点 B 数的话,还算是合格的程序员么?
jinzhongyuan
2020-06-20 16:11:24 +08:00
@huntcool001 我的意思就是 rabbitmq
jinzhongyuan
2020-06-20 16:12:18 +08:00
@xuanbg 有道理,封装多了,反而增加负担啊
wdmx007
2020-06-20 16:19:25 +08:00
@hantsy 不觉得 data flow 超级逗比吗?[狗头]
hantsy
2020-06-20 16:19:45 +08:00
@xuanbg 从微调 MQ 的角度,我还首选 Spring AMQP 。

Cloud Stream 更多的解决互通问题,隐藏 MQ 的细节配置,猛看各种 MQ 用法差不多。
hantsy
2020-06-20 16:21:11 +08:00
@wdmx007 AWS Lambda 逗比吗?实际上一样的设计思路,只是 SCDF 影响力远不如 AWS Lambda 平台。
hantsy
2020-06-20 16:36:22 +08:00
@huntcool001 实现 AMQP 协议的 Message Broker 很多吧,Apache ActiveMQ,Redhat AMQ 好像也实现。

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 不作评价,我没用过。《《生态圈子》》》远不如上面两个,目前感觉还只是博眼球阶段。
qwerthhusn
2020-06-20 17:39:32 +08:00
还有一个 Spring Cloud Bus,我一直弄不清楚与 Spring Cloud Stream 和 Spring Data AMQP 之间的关系

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/683299

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX