Skip to content

SpringCloudStream

官方文档: Spring Cloud Stream

image-20220115210347900

Spring Cloud Stream 是一个用于构建基于消息的微服务应用框架,使用 Spring Integration 与 Broker 进行连接。

Spring Cloud Stream 提供了消息中间件的统一抽象,推出了 publish-subscribe、consumer groups、partition 这些统一的概念。

Spring Cloud Stream 内部有两个概念:BinderBinding

Binder,跟消息中间件集成的组件,用来创建对应的 Binding。各消息中间件都有自己的 Binder 具体实现。

Binding,包括 Input Binding 和 Output Binding。Binding 在消息中间件与应用程序提供的 Provider 和 Consumer 之间提供了一个桥梁,实现了开发者只需使用应用程序的 Provider 或 Consumer 生产或消费数据即可,屏蔽了开发者与底层消息中间件的接触。

使用注意事项和总结

Stream-RabbitMQ

xml
<!-- Spring Cloud Stream RabbitMQ -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
<!-- Spring Cloud Stream RabbitMQ -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
yaml
spring:
  rabbitmq:
    host: 127.0.0.1
  cloud:
    stream:
	  binders:
	    defaultRabbit: 
		type: rabbit
    # 服务的整合处理
    bindings:
      # 通道名称,可自由定义,不一定要和生产者的相同,但必须要与通道接口中定义的通道名称一致
      XXX: 
    	# Exchange名称,可自由定义,但必须与生产的一致,否则无法读取到生产者发送的消息
    	destination: XXX 
    	content-type: application/json 
    	group: XXX
spring:
  rabbitmq:
    host: 127.0.0.1
  cloud:
    stream:
	  binders:
	    defaultRabbit: 
		type: rabbit
    # 服务的整合处理
    bindings:
      # 通道名称,可自由定义,不一定要和生产者的相同,但必须要与通道接口中定义的通道名称一致
      XXX: 
    	# Exchange名称,可自由定义,但必须与生产的一致,否则无法读取到生产者发送的消息
    	destination: XXX 
    	content-type: application/json 
    	group: XXX