apache-kafka - Spring Cloud Stream 应用程序消息系统可移植性
问题描述
我正在使用 IBM MQ 构建应用程序。构建它的建议架构是使用 spring 云流。我在许多文章中读过,您可以将您的 Spring Cloud 消息传递系统移植到其他一些。这意味着,我稍后也可以将我的 IBM MQ 更改为 kafka,但在类路径上提供了 binder 实现。这意味着什么?
我已经使用 rabbitmq 构建了一个 Spring Amqp 应用程序,我在我的应用程序中使用的功能如下,
- 请求回复
- dlq
- 生产者和侦听器配置都具有向上和向下扩展,这意味着我可以使用代码创建队列、其交换和绑定路由键。
我想知道如果我使用 Spring Cloud Stream 是否可以使用上述功能,我是否需要更改我的实现代码以将 ibm mq 移植到 kafka?
解决方案
spring-cloud-stream 框架的主要目标是为各种外部系统和消息代理提供透明的绑定功能,以确保实际用户代码与所使用的代理类型无关。
所以是的,您可以将活页夹从 A 交换到 B,而无需对代码进行任何更改。您可能需要更改一些配置参数(例如,代理 URL、端口等)。有关更多详细信息,请访问项目网站,该网站提供了框架功能的非常好的摘要以及详细文档的链接。
推荐阅读
- mysql - Docker-compose MySQL 链接失败
- javascript - 如何在反应中呈现矩阵表形式数组
- ruby-on-rails - 如何修复 ArgumentError - 表单中的第一个参数不能包含 nil 或为空:app/views/cars/new.html.erb:8
- android - 如何将额外数据与从 GoogleSignInClient.getSignInIntent() 获得的 Intent 一起传递?
- php - 如何将帖子标题作为值传递?
- javascript - 数据表的渲染功能添加额外的文本
- python - ERROR:gl_surface_egl.cc(668)] EGL Driver message (Error) eglQueryDeviceAttribEXT: Bad attribute error using ActionChains from Selenium Python
- proxy - 地理服务器工作区和代理
- python - PyTorch 获取二维张量中的值索引
- mysql - 避免简单更新查询上的mysql死锁