Я новичок в весеннем облачном потоке, и мне интересно, есть ли способ отправить две полезные нагрузки сообщения для обработки другими службами.
Мой пример использования - у меня есть пользовательская служба, которую я Я использую в качестве клиентского приложения на данный момент. У меня есть служба учетных записей, связанная с пользователем, и служба продуктов.
Когда пользователь покупает продукт, я пытаюсь отправить userId вместе с productId в службу учетной записи, где служба учетной записи отправляет баланс и идентификатор продукта в службу продукта, где продукт Сервис определит, достаточно ли велик баланс для покупки продукта. Это возможно, или я должен попробовать другой подход?
Вот мой звонок со стороны клиента, но только отправка идентификатора пользователя:
@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();
}