Мне нужна помощь с настройкой.У меня есть 3 отдельных проекта, которые должны общаться через Spring Stream Cloud.Я хочу вещать из моего основного проекта на два других, а также слушать оба их исходящих канала.Jhipster генерирует названия каналов, которые включают название проекта и номер, и я ничего не могу изменить по этому поводу.Я не мог найти место, где эти имена генерируются.Он говорит, что они являются SubscribeableChannels, так что это должны быть исходящие каналы.Однако я не могу найти входящие каналы.Итак, что я не знаю:
Где изменить шаблон для генерации имен каналов в JHipster
Как связать несколько каналов с одним другим каналом?Как и где именно определить входящие и исходящие каналы и связь между ними?Мне не совсем понятно, как это можно решить с помощью Spring Cloud Stream и использовать несколько тем kafka .
Так что, если бы вы могли добавить некоторую информацию относительно моей проблемы, я был бы очень признателен.
application.yml в моем основном проекте
spring:
cloud:
stream:
bindings:
messageChannel:
destination: detection-1.subscribableChannel, demux-1.subscribableChannel # send
content-type: application/json
subscribableChannel:
destination: detection-1.messageChannel, demux-1.messageChannel # receive
Остальные идентичны и выглядят так
spring:
cloud:
stream:
bindings:
messageChannel:
destination: WebApp-1.subscribableChannel
content-type: application/json
subscribableChannel:
destination: WebApp-1.messageChannel
моя привязка в коде к каналам выглядит такэто:
public interface ProducerChannel {
String CHANNEL = "messageChannel";
@Output
MessageChannel messageChannel();
}
public interface ConsumerChannel {
String CHANNEL = "subscribableChannel";
@Input
SubscribableChannel subscribableChannel();
}
И вот как я это обозначаю в рабочем коде
@Autowired
ProducerChannel producer;
@StreamListener(ConsumerChannel.CHANNEL)
public void consume(Message greeting) {
String str = greeting.getMessage();
//do something
producer.messageChannel().send(MessageBuilder
.withPayload(new Message().setMessage("hello world")
.build());
}
}