传送门
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 中使用流处理功能。请注意,这只是一个简单的示例,您可以根据自己的需求进行更复杂的配置和处理。