У меня проблема с Spring Cloud Stream. Дело в том, что у меня есть bean-компонент, который будет писать в Kafka, как только он будет создан (метод, аннотированный @PostConstruct), поэтому я автоматически подключаю соответствующий MessageChannel и устанавливаю свойства назначения и связывателя в application.yml. Это выглядит так:
@Component
@RequiredArgsConstructor
public class Sender
{
private final MessageChannel output;
@PostConstruct
public void start()
{
output.send(new GenericMessage("Hello world");
}
}
И application.yml
spring:
cloud:
stream:
bindings:
output:
destination: someData
binder: kafka
У меня также есть следующие зависимости:
- spring-cloud-stream-reactive
- reactor-core
- spring-cloud-starter-stream-kafka
Сам проект запускается, но я получаю следующее исключение при попытке записи в метод output
в start()
:
Caused by: org.springframework.integration.MessageDispatchingException: Dispatcher has no subscribers
Это потому, что биндер Kafka еще не успел связать канал или что? Если да, то каков альтернативный способ.
Заранее спасибо.