标签:Stream SpringCloud Binder 消息 消息中间件 组件 Channel
介绍
SpringCloud Stream 是用于构建消息驱动的微服务框架。应用程序通过 inputs 或者 outputs 来与 SpringCloud Stream 中的 binder 对象交互。SpringCloud Stream 的 binder 对象负责与消息中间件交互,但是目前仅支持 RabbitMQ、Kafka。
工作原理
通过定义绑定器作为中间层,实现了应用程序与消息中间件细节之间的隔离。通过向应用程序暴露统一的 Channel 通道,使得应用程序不需要再考虑各种不同的消息中间件的实现。当需要升级消息中间件,或者是更换其它消息中间件时,我们需要做的就是更换对应的 Binder 绑定器而不需要修改任何应用逻辑。
Source
发送消息时,我们就需要通过 Source.java,它会把我们所要发送的消息进行序列化,然后将这些数据发送到 Channel 中。
Sink
监听消息时就需要通过 Sink.java,它会负责从 Channel 中获取消息,并将消息反序列化成消息对象。
Channel
通常我们向消息中间件发送消息或者监听消息时需要指定 Topic 和消息队列名称,一旦我们需要变更 Topic 的时候就需要修改消息发送或消息监听的代码。通过 Channel 对象,我们的业务代码只需要对应的 Channel 就可以了。具体这个 Channel 对应的是哪个 Topic,可以在配置文件中来指定,这样当主题变更的时候我们就不用对代码做任何修改,从而实现了与具体消息中间件的解耦。
Binder
通过不同的 Binder 可以实现不同的消息中间件整合,Binder提供统一的消息收发接口,从而使得我们可以根据实际需要部署不同的消息中间件,或者根据实际生产中所部署的消息中间件来调整我们的配置。
标签:Stream,SpringCloud,Binder,消息,消息中间件,组件,Channel 来源: https://www.cnblogs.com/feiqiangsheng/p/16351927.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。