spring cloud stream 3.x简单使用

spring cloud stream 3.x较之前版本有很大的不同,废除了@Input@Output@EnableBinding@StreamListener等注解,下面以kafka作为示例进行简单的使用说明。

引入gradle依赖

ext {
	set('springCloudVersion', "2020.0.0")
}

dependencies {
    implementation 'org.springframework.cloud:spring-cloud-stream-binder-kafka'
}

dependencyManagement {
	imports {
		mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
	}
}

配置文件

spring.cloud.stream.kafka.binder.brokers: ip:port
spring.cloud.stream.bindings.supplier-out-0.destination: topic名称 # 生产者topic配置
spring.cloud.stream.bindings.receiver-in-0.destination: topic名称 # 消费者topic配置,bindingName命名规范:bean名称-in-索引,索引值为参数个数
spring.cloud.stream.bindings.receiver-in-0.group: etcGroup # 消费者group配置

生产者和消费者代码示例


public interface KafkaBindingNames {
    String SUPPLIER = "supplier-out-0";
}


@RestController
@RequestMapping
@Configuration
@Slf4j
public class StreamTestController {

    private final StreamBridge streamBridge;

    public StreamTestController(StreamBridge streamBridge) {
        this.streamBridge = streamBridge;
    }

    @GetMapping("/streamTest")
    public void streamTest(){
        streamBridge.send(KafkaBindingNames.SUPPLIER, new User("张三", 30)); // 向kafka发送消息
    }

    @Setter
    @Getter
    @AllArgsConstructor
    @NoArgsConstructor
    public static class User{
        private String name;
        private Integer age;
    }

    // 消费者,bean名称必须与配置文件中的bindingName一致
    @Bean
    public Consumer<User> receiver() {
        return msg -> log.info("receive msg:{}", msg);
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值