spring cloud stream rabbit 4.0示例

参考链接

疑问

这里配置生产者、消费者 每一个都需要在yml配置,看起来很复杂,不知道有没有简单的配置方法

pom 添加依赖

方式一

<!--cloud rabbitMq 依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-stream-binder-rabbit</artifactId><version>4.1.0</version></dependency>

方式二

<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-stream-rabbit -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-stream-rabbit</artifactId><version>4.1.0</version>
</dependency>

yml 配置文件

rabbitmq 配置

spring:cloud:stream:binders:rabbit:type: rabbitenvironment: #配置rabbitmq连接环境spring:rabbitmq:host: ipusername: adminpassword: adminvirtual-host: my_vhost

这里我把生产者 消费者放在一个项目测试,可以在不同想目放生产者、消费者

消费者 配置


spring:cloud:stream:bindings:# in 消费者test-in-0:content-type: application/jsondestination: test-destinationgroup: test-groupbinder: rabbittest1-in-0:content-type: application/jsondestination: test1-destinationgroup: test1-groupbinder: rabbittest2-in-0:content-type: application/jsondestination: test2-destinationgroup: test2-group  # 队列binder: rabbitfunction:definition: test;test1;test2

消费者

@Component
public class ConsumerTest {/*** 注意方法名称 demo 要与配置文件中的spring.cloud.stream.bindings.demo-in-0 保持一致* 其中 -in-0 是固定写法,in 标识消费者类型,0是消费者索引*/@Beanpublic Consumer<Person> test() {return person -> {System.out.println("Received: " + person);};}@Beanpublic Consumer<String> test1() {return msg -> {System.out.println("Received: " + msg);};}@Beanpublic Consumer<Person> test2() {return msg -> {System.out.println("Received: " + msg);};}}
public class Person {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public String toString() {return this.name;}
}

启动后可以在 rabbitmq 控制台看到 生成的 topicqueue

在这里插入图片描述

在这里插入图片描述

配置生产者

yml

spring:cloud:stream:bindings:# 生产者test-out-0:content-type: application/jsondestination: test-destination  # topicbinder: rabbittest1-out-0:content-type: application/jsondestination: test1-destinationbinder: rabbittest2-out-0:content-type: application/jsondestination: test2-destinationbinder: rabbit

测试代码

package com.example.demorabbit;import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.stream.function.StreamBridge;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequiredArgsConstructor
public class ProducerController {private final StreamBridge streamBridge;@GetMapping("sendMsg")public String sendMsg(int delay, String name) {Person person = new Person();person.setName(name);
//        Message<SpringcloudstreamDemo1Application.Person> message = MessageBuilder.withPayload(person)
//                .setHeader("x-delay", delay).build();
//        // 发送延时消息
//        streamBridge.send("demo2-out-0", message);streamBridge.send("test1-out-0", person);streamBridge.send("test-out-0", person);return "发送成功";}
}

测试发送消息
http://localhost:5656/sendMsg?delay=10000&name=zhangsan

发送接收成功
在这里插入图片描述

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

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

相关文章

【操作系统】处理机调度算法

实验3 处理机管理 一、实验目的 在多道程序或多任务系统中&#xff0c;系统中同时处于就绪态的进程有若干个&#xff0c;即能运行的进程数远远大于处理机个数。为了使系统中的各个进程能有条不紊的运行&#xff0c;必须按照某种调度策略&#xff0c;选择一个进程占用处理机。…

集百家所长的开放世界游戏,艾尔莎H311-PRO带你玩转《幻兽帕鲁》

随着近几年开放世界游戏热潮的兴起&#xff0c;如今这类游戏可以说是像雨后春笋般不断推出&#xff0c;比如《幻兽帕鲁》就是近期非常火热的一个代表&#xff0c;它不仅集合了生存、建造、宠物养成等多种元素&#xff0c;而且可爱的卡通画风格更是老少皆宜。那么&#xff0c;这…

【Spring】IoC容器 控制反转 与 DI依赖注入 配置类实现版本 第四期

文章目录 基于 配置类 方式管理 Bean一、 配置类和扫描注解二、Bean定义组件三、高级特性&#xff1a;Bean注解细节四、高级特性&#xff1a;Import扩展五、基于注解配置类方式整合三层架构组件总结 基于 配置类 方式管理 Bean Spring 完全注解配置&#xff08;Fully Annotatio…

防御保护---内容过滤技术

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.防火墙内容过滤技术概述 内容过滤技过检查网络流量中的数据包内容&#xff0c;对不符合预订策略的文件类型/文件的上传下载/承载文件的协议和应用进行过滤和阻止&#xff0c;以确保网络安全。…

CSS浮动与定位

行内元素和块级元素的区别&#xff1a;&#xff08;非常重要&#xff09; 行内元素&#xff1a; 与其他行内元素并排&#xff1b;不能设置宽、高。默认的宽度&#xff0c;就是文字的宽度。 块级元素&#xff1a; 霸占一行&#xff0c;不能与其他任何元素并列&#xff1b;能…

华为算法题 go语言或者ptython

1 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返…

PostgreSQL 实体化视图的使用

上周的教程中&#xff0c;通过 DVD Rental Database 示例&#xff0c;让我们了解了在 PostgreSQL 中创建实体化视图的过程。正如我们所了解的&#xff0c;PostgreSQL 实体化视图提供了一种强大的机制&#xff0c;通过预计算和存储查询结果集为物理表来提高查询性能。接下来的内…

轻松掌握opencv的8种图像变换

文章目录 opencv的8种图像变换1. 图像放大、缩小2. 图像平移3. 图像旋转4. 图像仿射变换5. 图像裁剪6. 图像的位运算&#xff08;AND, OR, XOR&#xff09;7. 图像的分离和融合8. 图像的颜色空间 opencv的8种图像变换 1. 图像放大、缩小 我们先看下原图 import cv2 import ma…

HTTP基本概念-HTTP 常见的状态码有哪些?

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP 常见的状态码有哪些? 1xx 类状态码属于提示信息&#xff0c;是协议处理中的一种中间状态&#xff0c;实际用到的比较少。 2xx 类状态码表示服务器成功处理了客户端的请求&#xff0c;也是我们最愿…

【stm32】hal库-双通道ADC采集

【stm32】hal库-双通道ADC采集 CubeMX图形化配置 程序编写 /* USER CODE BEGIN PV */ #define BATCH_DATA_LEN 1 uint32_t dmaDataBuffer[BATCH_DATA_LEN]; /* USER CODE END PV *//* USER CODE BEGIN 2 */lcd_init();lcd_show_str(10, 10, 24, "Demo14_4:ADC1 ADC2 S…

vue后台管理添加水印简单方式watermark-package

详情参考:https://www.npmjs.com/package/watermark-package 示例方法 <el-button type"primary" click"AddWatermark">添加水印</el-button><el-button type"primary" click"RemoveWatermark">清除水印</el-but…

k8s-heml管理 17

Helm是Kubernetes 应用的包管理工具&#xff0c;主要用来管理 Charts&#xff0c;类似Linux系统的 yum。Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata&#xff0c;以便于应用程序的分发。 对于应用…

关于el-select值的回显问题 : 框内显示label值还是value值

<el-form-item label"状态" prop""><el-selectv-model"roleForm.state"class"m-2"size"large"style"width: 240px"placeholder"请选择状态"value-key"value"//value-key 与下面的ke…

CleanMyMac X2024告别硬盘空间不足,让您的Mac电脑极速如新

CleanMyMac X支持多种操作系统版本&#xff0c;包括macOS 10.10&#xff08;Yosemite&#xff09;、macOS 10.11&#xff08;El Capitan&#xff09;、macOS 10.12&#xff08;Sierra&#xff09;、macOS 10.13&#xff08;High Sierra&#xff09;、macOS 10.14&#xff08;Mo…

多输入时序预测|GWO-CNN-LSTM|灰狼算法优化的卷积-长短期神经网络时序预测(Matlab)

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、算法介绍&#xff1a; 灰狼优化算法&#xff1a; 卷积神经网络-长短期记忆网络&#xff1a; 四、完整程序下载&#xff1a; 一、程序及算法内容…

解决IntelliJ IDEA 2023版本创建Spring项目时Java只能选择17或21的问题

问题描述&#xff1a; 当使用IntelliJ IDEA2023版本中Spring Initializr新建Spring项目时&#xff0c;即使JDK配置项为1.8&#xff0c;Java配置项仍然只能选17或21. 在JDK为1.8版本情况下&#xff0c;Java选择17或21&#xff0c;点击NEXT按钮&#xff0c;则会弹窗提示SDK不支持…

如何打造品牌的专属记忆点?媒介盒子支招

传播环境不断改变&#xff0c;品牌运营的方式也需要不断更新&#xff0c;碎片化“短平快”营销也许能短暂的占据大众视野&#xff0c;但并非品牌的长效致胜法宝。实现品牌价值长效增长的核心技巧就在于打造品牌的专属记忆点&#xff0c;那么如何通过打造记忆点来破开品牌的同质…

互动游戏团队如何将性能体验优化做到TOP级别

一、背景 随着互动游戏业务 DAU 量级增加&#xff0c;性能和体验重要性也越发重要&#xff0c;好的性能和体验不仅可以增加用户使用体感&#xff0c;也可以增加用户对于互动游戏的使用粘性。 对现状分析&#xff0c;主要存在首屏渲染速度慢、打开页面存在白屏、页面加载过多资…

二叉树中的第K大层和

1.题目 这道题是2024-2-23的签到题&#xff0c;题目难度为中等。 考察知识点为BFS算法&#xff08;树的层序遍历&#xff09; 大根堆&#xff08;优先队列&#xff09;。 题目链接&#xff1a;2583. 二叉树中的第 K 大层和 - 力扣&#xff08;LeetCode&#xff09; 给你一棵…

云服务器发展史

在数字化浪潮的推动下&#xff0c;云服务器作为信息技术领域的一颗璀璨明珠&#xff0c;其发展史是一部科技进步和创新思维的缩影。从最初的概念提出到现如今的广泛应用&#xff0c;云服务器经历了翻天覆地的变化&#xff0c;不仅极大地推动了信息技术的发展&#xff0c;也彻底…