【问题标题】:Spring cloud stream application messaging system portabilitySpring Cloud Stream 应用程序消息系统可移植性
【发布时间】:2019-04-27 03:28:03
【问题描述】:

我正在使用 IBM MQ 构建应用程序。构建它的建议架构是使用 Spring Cloud Stream。我在很多文章中读过,你可以将你的 spring 云消息传递系统移植到其他一些。这意味着,我稍后也可以将我的 IBM MQ 更改为 kafka,但在类路径上提供了绑定器实现。那是什么意思?

我已经使用rabbitmq构建了一个Spring Amqp应用程序,我在应用程序中使用的功能如下,

  1. 请求回复
  2. dlq
  3. 生产者和侦听器配置都具有放大和缩小功能,这意味着我可以使用代码创建队列、其交换和绑定路由键。

我想知道如果我使用 Spring Cloud Stream 是否可以使用上述功能,我是否需要将我的实现代码更改为将 ibm mq 移植到 kafka?

【问题讨论】:

  • 你的问题真的只是问Classpath是什么意思吗?例如,假设你没有Kafka代码,是IBM或Rabbit的,然后你开始尝试在代码中使用Spring Kafka类,然后你会因为找不到它们而出现编译错误......所以你需要添加Kafka 库到您的类路径,并移植部分代码以使用它们
  • 另一个问题是我是否需要更改我的实现代码以从 ibm mq 转移到 kafka?
  • 我没有使用 Spring Kafka 的经验,但至少,我认为“挂钩”Kafka 设置有不同的注释,所以是的
  • 或者,您可以保留 IBM MQ 代码,并使用 Kafka Connect 将消息直接移动到 Kafka docs.confluent.io/current/connect/kafka-connect-ibmmq/…

标签: apache-kafka rabbitmq ibm-mq spring-cloud spring-cloud-stream


【解决方案1】:

spring-cloud-stream 框架的主要目标是为各种外部系统和消息代理提供透明的绑定功能,以确保实际用户代码与所使用的代理类型无关。

所以是的,您可以将活页夹从 A 交换到 B,而无需对代码进行任何更改。您可能需要更改一些配置参数(例如,代理 URL、端口等)。有关更多详细信息,请访问project website,它提供了对框架功能的非常好的总结以及详细文档的链接。

【讨论】:

    猜你喜欢
    • 2010-11-13
    • 2016-08-09
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2020-09-28
    • 2021-06-12
    • 2017-12-01
    相关资源
    最近更新 更多