当前位置: 首页 > news >正文

SpringCloudStream+RocketMQ多topic

之前写过两篇关于SpringCloudStream文章

spring-cloud-stream版本升级,告别旧注解@EnableBinding,拥抱函数式编程_spring-cloud-stream output注解没有了-CSDN博客

SpringCloudStream+RocketMQ事务消息配置_spring-cloud-starter-stream-rocketmq-CSDN博客

提到了一个多topic问题,在不配置spring.cloud.stream.function.definition的情况下只能配置一个in和一个out,这篇文章来解决这个问题。

根据上面的第一篇文章续写代码

一、续写生产者

1.写配置

在bindings后面添加即可,这里给出完整配置

spring:application:name: providercloud:nacos:discovery:server-addr: localhost:8848namespace: localusername: nacospassword: nacosstream:rocketmq:binder:name-server: 127.0.0.1:9876bindings:## 新版本固定格式  channel名字-{out/in}-{index}addBounsChannel-out-0:destination: add-bounsgroup: bouns-producer-groupsecondChannel-out-0:destination: secondgroup: second-producer-groupsource-out-0:destination: thirdgroup: third-producer-group
server:port: 8081

2.写代码

同样的使用streamBridge.send发消息

public void sendMqSecondChannel() {streamBridge.send("secondChannel-out-0", "sendMqSecondChannel from Provider!");}

二、续写消费者

1.写配置

多个消费者时,需要在spring.cloud.stream.function.definition 定义bean名称,多个时用分号分隔

给出完整yaml代码

spring:application:name: consumercloud:nacos:discovery:server-addr: localhost:8848namespace: localusername: nacospassword: nacosstream:function:definition: addBounsChannel;secondChannel;sourcerocketmq:binder:name-server: 127.0.0.1:9876bindings:## 新版本固定格式  channel名字-{out/in}-{index}addBounsChannel-in-0:destination: add-bounsgroup: bouns-consumer-groupsecondChannel-in-0:destination: secondgroup: second-consumer-groupsource-in-0:destination: thirdgroup: third-consumer-group
server:port: 8082

2.写代码

跟之前一样,定义bean的Consumer

   @Beanpublic Consumer<String> secondChannel() {return message -> {System.out.println("secondChannel消费消息:" + message);};}

三、常见问题

1.有Consumer必定会有Supplier,为什么不用Supplier发消息

Supplier也需要配置成@Bean,Supplier也跟Consumer一样用的监听模式,启动后不做处理会一直发,不如streamBridge.send发送灵活,这篇文章也有Supplier发送的例子可供参考Kafka Streams with Spring Cloud Stream - Spring Cloud

2.本文完整项目示例代码

【免费】springcloud-stream-rocketmq多topic示例代码资源-CSDN文库


http://www.mrgr.cn/news/40316.html

相关文章:

  • Java后端中的服务隔离策略:如何避免服务之间的相互影响
  • 【优化代码结构】函数的参数归一化
  • Vscode、小皮面板安装
  • 问:聊聊JAVA线程池?
  • Wooey:将 Python 脚本转化为 Web 应用的简易解决方案
  • 深入理解Java中的垃圾回收机制
  • AI学习指南深度学习篇-批标准化Python实践
  • <<迷雾>> 第5章 从逻辑学到逻辑电路(3)--与门 示例电路
  • 职业生涯的三个阶段
  • 【初阶数据结构】详解插入排序 希尔排序(内含排序的概念和意义)
  • 《Windows PE》3.2.3 NT头-扩展头
  • Zig开发环境搭建
  • C++学习笔记----8、掌握类与对象(二)---- 成员函数的更多知识(1)
  • 基于小程序+Vue + Spring Boot的进销存库存出库入库统计分析管理系统
  • 用Python实现运筹学——Day 8: 对偶理论的经济解释
  • VMware Aria Automation 8.18 发布,新增功能概览
  • plt等高线图的绘制
  • cmd下的管理员权限闪退 原理分析
  • 【分布式微服务云原生】消息队列全解析:原理、应用场景与主流MQ对比
  • c# iTextSharp 读取PDF