【发布时间】:2020-01-23 15:25:54
【问题描述】:
我是 Spring Cloud Stream 的新手,我想知道是否有某种方法可以发送消息的两个有效负载以供其他服务处理。
我的用例是我有一个用户服务,我现在将它用作客户端应用程序。我有一个与用户和产品服务关联的帐户服务。
当用户购买产品时,我试图将 userId 与 productId 一起发送到帐户服务,帐户服务将余额和产品 ID 发送到产品服务,产品服务将确定如果余额足够高以购买产品。这是可能的还是我应该尝试不同的方法?
这是我从客户端打来的电话,但只发送用户 ID:
@GetMapping("/{userId}/purchase")
public void buyProduct(@PathVariable("userId") int userId, @RequestParam("productId") int productId) {
Message<Integer> msg =MessageBuilder.withPayload(userId).build();
this.purchaseProduct.send(msg);
}
我正在考虑使用 spring 集成,类似于:
@Bean
IntegrationFlow integrationFlow(AccountChannels c) {
return IntegrationFlows.from(c.purchaseProduct())
.handle(Integer.class,(payload,headers)->{
///Handle here
return null;
}).get();
}
【问题讨论】:
标签: spring-boot spring-integration spring-webflux spring-cloud-stream