图说SpringCloudStream消息驱动

news2024/11/29 14:54:34

SpringCloud Stream消息驱动实现原理
通过定义Binder绑定器作为中间层,实现了应用程序和消息中间件之间实现细节的隔离。通过向应用程序暴露统一的Channel通道,可以让应用程序不再需要考虑各种不同的消息中间件实现的兼容性问题。当需要升级消息中间件,或者是更换其他消息中间件产品时,我们需要做的就只是更换对应的Binder绑定器即可,不需要再修改任何应用中对接消息中间件的实现逻辑。

Stream消息驱动中有以下几个核心概念:
Source: 当需要发送消息时,就需要使用Source来实现,Source会把所要发送的消息(POJO对象)进行序列化(默认转换成JSON格式字符串),然后将这些数据发送到Channel中。
Channel: 消息通道是Stream消息驱动的抽象之一。通常我们向消息中间件发送消息或者消费消息时需要指定主题(Topic)名称或消息队列名称,但这样一来,当我们需要变更主题名称的时候就需要修改大量消息发起方和消息消费方的代码,但是通过使用Channel消息通道,消息发起方和消息消费方的业务代码只需要连接到Channel消息通道就可以了,具体这个Channel消息通道对应的是哪个主题,就可以在配置文件中指定,这样当主题变更的时候我们不需要对代码做任何修改,就实现了业务代码和具体消息中间件的解耦。
Binder: Stream消息驱动中的另外一个抽象层,通过不同的Binder可以实现和不同的消息中间件整合,比如针对Kafka的Binder等等,通过Binder提供统一的消息收发接口,我们可以根据实际需要部署不同的消息中间件,或者根据实际生产环境中部署的消息中间件来调整我们的配置。
Sink: 当需要监听消息时,就需要使用Sink来实现,Sink负责从Channel消息通道中获取消息,并将消息反序列化成消息对象(POJO对象),然后交给具体的消息消费方处理相应的业务逻辑。

SpringCloudStream原理图

027245c23cfe4dc3b298f1f8184e7308.png

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1847890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【软件测试入门】测试用例经典设计方法 — 因果图法

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、因果图设计测试用例的步骤 1、分析需求 阅读需求文档,如果User Case很复杂&am…

光大证券-放量恰是入市时:成交量择时初探

核心算法 1. 在熊市中,各成交量时序排名出现的频次基本随排名变小而单调增大;在牛市中,各成交量时序排名出现的频次基本随排名变小而单调减少;而在震荡市中,各成交量时序排名出现的频次两头大,中间小&…

C语言----C语言内存函数

1.memcpy--内存拷贝--使用和模拟实现 //memcpy基本格式: // 目标空间地址 原空间地址 被拷贝的字节个数 //void *memcpy(void * destination, const void * source,size_t num); //因为内存拷贝拷贝的数据有:整型数据、结构…

三丰云免费虚拟主机和免费云服务器评测

今天我要向大家推荐一款非常优秀的云服务提供商,那就是三丰云。三丰云提供了免费虚拟主机和免费云服务器,为用户提供了便捷高效的云计算服务。首先,让我们来看看三丰云的免费虚拟主机服务。三丰云的免费虚拟主机提供了稳定可靠的服务器资源&a…

【ClickHouse】副本、分片集群 (六)

副本 副本的目的主要是保障数据的高可用性,即使一台ClickHouse节点宕机,那么也可以从其他服务器获得相同的数据。 https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/ 副本写入流程 写入流程如图-18所示: 图-18 写…

信息系统项目管理师 | 信息系统安全技术

关注WX:CodingTechWork 信息安全概念 安全属性 秘密性:信息不被未授权者知晓。完整性:信息是正确的、真实的、未被篡改的、完整无缺。可用性:信息可以随时正常使用。 安全分层 设备安全 设备的稳定性:在一定时间…

Ascend C Add算子样例代码详解

核函数定义 核函数(Kernel Function)是Ascend C算子设备侧实现的入口。在核函数中,需要为在一个核上执行的代码规定要进行的数据访问和计算操作,当核函数被调用时,多个核都执行相同的核函数代码,具有相同的…

千年古城的味蕾传奇-平凉锅盔

在甘肃平凉这片古老而神秘的土地上,有一种美食历经岁月的洗礼,依然散发着独特的魅力,那便是平凉锅盔。平凉锅盔,那可是甘肃平凉的一张美食名片。它外表金黄,厚实饱满,就像一轮散发着诱人香气的金黄月亮。甘…

基于语音识别的智能电子病历(五)电子病历编辑器

前言 首先我们要明确一个概念:很多电子病历的编辑器,在输入文字的地方,有个麦克风按钮,点击一下,可以进行录音,然后识别的文字会自动输入到电子病历中,这种方式其实不能称为“基于语音识别的智…

【MySQL】 -- 事务

如果对表中的数据进行CRUD操作时,不加控制,会带来一些问题。 比如下面这种场景: 有一个tickets表,这个数据库被两个客户端机器A和B用时连接对此表进行操作。客户端A检查tickets表中还有一张票的时候,将票出售了&#x…

Aidlux 1.4 部署Nextcloud 2024.6实录 没成功

Aidux阉割版Debain10,坑很多,比如找不到实际的系统日志,有知道的大神吗? 1 Apache2安装 # 测试Apache2 sudo apt update && sudo apt upgrade sudo apt install apache2 -y80端口疑似被禁止只能换端口 rootlocalhost:/…

云计算技术高速发展,优势凸显

云计算是一种分布式计算技术,其特点是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,并通过多部服务器组成的系统进行处理和分析这些小程序,最后将结果返回给用户。它融合了分布式计算、效用计算、负载均衡、并行计算、网络存储…

ctr/cvr预估之NFM模型

ctr/cvr预估之NFM模型 在数据驱动的广告和推荐系统中,准确预测用户的点击行为(Click-Through Rate, CTR)和转化行为(Conversion Rate, CVR)是提升营销效率和用户体验的关键。因子分解机(Factorization Mac…

RK3568技术笔记七 安装Ubuntu Linux

在新弹出的窗口中,单击“CD/DVD (SATA)”。如下图所示: 在右侧选择“使用ISO映像文件”。然后单击“浏览”,找到SAIL-RK3568开发板光盘->通用工具->虚拟机Ubuntu->ubuntu-18.04.4-desktop-amd64.iso。最后点击…

韩顺平0基础学java——第28天

p569-591 坦克大战!(绘图监听事件线程文件处理) 绘图 绘图原理 Component类提供了两个和绘图相关最重要的方法: 1. paint(Graphics g)绘制组件的外观 2. repaint()刷新组件的外观。 当组件第一次在屏幕显示的时候,程序会自动的调用paint()…

Dify知识库接入微信

Dify知识库接入微信 看到此文章,相信您已经搭建好了Dify知识库,还没有Dify知识库请先部署好后再来尝试将Dify接入微信 准备材料如下 搭建好的Dify知识库里的api接口和key24小时不关机的服务器一个 (推荐浪浪云的服务器简单方便)需要一个微信…

数学建模整数规划学习笔记

与线性规划的本质区别在于决策变量是否取整。 (1)分支定界法 若不考虑整数限制先求出相应松弛问题的最优解: 若松弛问题(线性规划)无解,则ILP(整数规划)无解。 若求得的松弛问题最…

校园任务平台系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,论坛管理,任务咨询管理,用户管理,基础数据管理 前台账户功能包括:系统首页,个人中心,任务资讯公告&#…

代码随想录第29天|贪心算法

基础知识 原理: 选择每一阶段的最优解, 从而达到全局最优解套路: 无, 只能举反例, 想不出反例则可以尝试用贪心算法 455. 分发饼干 思路: 使用贪心策略 每次用大饼干满足大胃口的孩子(用小饼干则会浪费)或用小饼干满足小胃口的孩子 一定是遍历孩子, 不能遍历饼干, 否则结果不…

大模型时代,新手和程序员如何转型入局AI行业?

在近期的全国两会上,“人工智能”再次被提及,并成为国家战略的焦点。这一举措预示着在接下来的十年到十五年里,人工智能将获得巨大的发展红利。技术革命正在从“互联网”向“人工智能”逐步迈进,我将迎来新一轮技术革新和人才需求…