SpringCloud消息驱动

传送门

SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口

前言

本文第一代SpringCloudNetflix和第二代SpringCloudAlibaba都有讲解。参考尚硅谷周阳老师的资料。
下面文章不定期更新中。。。

SpringCloud服务注册中心
SpringCloud服务调用
SpringCloud服务降级
SpringCloud服务网关
SpringCloud服务配置
SpringCloud服务总线
SpringCloud消息驱动
SpringCloud链路跟踪
SpringCloud分布式事务

目前就Stream一个

一、概念

Spring Cloud Stream是一个构建消息驱动的微服务系统的框架。它基于Spring Boot,提供了一种简单的方式来开发和部署基于消息的微服务应用程序。通过使用Spring Cloud Stream,开发人员可以轻松地将消息队列、消息总线和事件流处理等消息中间件集成到应用程序中,以便实现实时数据处理、消息响应和事件驱动的架构。

Spring Cloud Stream提供了一种声明式的编程模型,使开发人员能够使用函数式编程的方式来处理和操作消息。它提供了一组标准化的接口和注解,用于定义输入和输出的消息通道、事件处理器和消息转换器等。开发人员只需关注业务逻辑的实现,而不需要关注底层的消息传输和序列化细节。

Spring Cloud Stream支持多种消息中间件,包括Apache Kafka、RabbitMQ、ActiveMQ等。开发人员可以根据自己的需求选择合适的消息中间件来作为消息传输的基础。

总之,Spring Cloud Stream提供了一种简单、灵活和可扩展的方式来构建基于消息驱动的微服务应用程序,帮助开发人员更好地处理和管理消息。

概念(不用学习4种MQ中间件技术,一种通用技术)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、binder

在这里插入图片描述
在这里插入图片描述

三、入门案例

1、消息生产者修改

改yml
在这里插入图片描述
常用注解
在这里插入图片描述
特殊service层发送消息接口
在这里插入图片描述
Controller提供调用接口
在这里插入图片描述

2、消息接受者修改

在这里插入图片描述

在这里插入图片描述

3、测试结果

控制台打印的
在这里插入图片描述
在这里插入图片描述

四、使用

Spring Cloud Stream 是一个轻量级的事件驱动微服务框架,用于在应用程序之间进行消息传递。它提供了一种简单而强大的方式来构建分布式系统中的数据流处理。

使用 Spring Cloud Stream,您可以使用声明性的方式来定义输入和输出通道,并使用注解将消息处理逻辑与通道绑定起来。

下面是使用 Spring Cloud Stream 的步骤:

1、引入依赖:

在您的项目中添加 Spring Cloud Stream 的依赖。例如,如果您使用 Maven,可以在 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-stream-{messaging-system}</artifactId>
</dependency>

其中,{messaging-system} 是要使用的消息中间件的名称,例如 RabbitMQ、Kafka 等。

2、定义输入和输出通道:

使用 @Input 和 @Output 注解来定义输入和输出通道。例如,如果您想定义一个名为 “input” 的输入通道和一个名为 “output” 的输出通道,可以在您的应用程序类中添加以下代码:

public interface MyChannels {
    String INPUT = "input";
    String OUTPUT = "output";

    @Input(INPUT)
    SubscribableChannel input();

    @Output(OUTPUT)
    MessageChannel output();
}

3、处理消息:

使用 @StreamListener 注解和上面定义的输入通道来处理收到的消息。例如,如果您想在收到消息时打印消息内容,可以在您的应用程序类中添加以下代码:

@EnableBinding(MyChannels.class)
public class MyApplication {

    @StreamListener(MyChannels.INPUT)
    public void handleMessage(String message) {
        System.out.println("Received message: " + message);
    }

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

4、发布消息:

使用上面定义的输出通道来发布消息。例如,如果您想发布一条消息到 “output” 通道,可以在您的应用程序中添加以下代码:

@Autowired
private MessageChannel output;

public void sendMessage(String message) {
    output.send(MessageBuilder.withPayload(message).build());
}

上面的代码示例中,我们创建了一个名为 “MyChannels” 的接口来定义输入和输出通道。然后,在应用程序类中使用 @EnableBinding 注解将该接口绑定到应用程序上下文中。在消息处理方法上使用 @StreamListener 注解来处理收到的消息。

希望以上的步骤能够帮助您理解如何在 Spring Cloud Stream 中使用流处理功能。请注意,这只是一个简单的示例,您可以根据自己的需求进行更复杂的配置和处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝影铁哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值