Отправьте сообщение с помощью Spring Cloud разным потребителям с помощью специальной функции RoutingFunction.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Отправьте сообщение с помощью Spring Cloud разным потребителям с помощью специальной функции RoutingFunction.

Сообщение Anonymous »

Согласно весеннему документу -> https://docs.spring.io/spring-cloud-fun ... ngcallback
Используя functionRouter, определенный в моем application-test.yml, я смог получить сообщение из темы и направить его через MessageRoutingCallBack к двум различным bean-компонентам, фильтруя по значению заголовка:
< Strong>application-test.yml

Код: Выделить всё

spring:
cloud:
function.definition: functionRouter
stream:
function.routing.enabled: true
bindings:
functionRouter-in-0:
content-type: application/json
destination: ${CLOUD_TOPIC:Example.Input}
group: ${CLOUD_STREAM_BINDINGS_INPUT_GROUPID:getExampleConsumerGroup}
MessageRoutingConfig.java

Код: Выделить всё

@Configuration
@Slf4j
public class MessageRoutingConfig {
private static final Map routingFunctions =
Map.of( "CONS_A", "consumerA",
"CONS_B", "consumerB");

@Bean
public MessageRoutingCallback routingCallback() {
return new MessageRoutingCallback() {
@Override
public String routingResult(Message message) {
String messageType = (String) message.getHeaders().get(KAFKA_HEADER_MSG_TYPE);
return routingFunctions.get(messageType);
}
};
}
}
Опять же из документации -> https://docs.spring.io/spring-cloud-fun ... utersЗатем объясняется, как создать пользовательскую функцию RoutingFunction, но не приводятся примеры того, как ее затем вызывать, чтобы сообщение было использовано потребителемA или потребителемB.
Ниже приведен мой текущий реализация взята в качестве примера из документации Spring и адаптирована.
application-test.yml

Код: Выделить всё

spring:
cloud:
function.definition: functionRouter;mySpecialRouter
stream:
function.routing.enabled: true
bindings:
functionRouter-in-0:
content-type: application/json
destination: ${CLOUD_TOPIC:Example.Input}
group: ${CLOUD_STREAM_BINDINGS_INPUT_GROUPID:getExampleConsumerGroup}
mySpecialRouter-in-0:
content-type: application/json
destination: ${CLOUD_TOPIC_NEW:Example.Input2}
group: ${CLOUD_STREAM_BINDINGS_INPUT_GROUPID:getExampleConsumerGroup}
MultipleRouterConfiguration.java

Код: Выделить всё

@Configuration
public class MultipleRouterConfiguration2 {
@Bean
RoutingFunction mySpecialRouter(
FunctionCatalog functionCatalog,
BeanFactory beanFactory,
@Nullable MessageRoutingCallback routingCallback) {
Map propertiesMap = new HashMap();
// Implement correctly propertiesMap with definition or routing-expression
return new RoutingFunction(
functionCatalog, propertiesMap, new BeanFactoryResolver(beanFactory), routingCallback);
}
}
Можно ли перенаправить вызов потребителю A или потребителю B с помощью специальной функции RoutingFunction, или я совершенно не в теме?

Подробнее здесь: https://stackoverflow.com/questions/790 ... routingfun
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Возможность отправки двух сообщений с одним и тем же ключом раздела двум разным потребителям в группе потребителей.
    Anonymous » » в форуме Apache
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Возможность отправки двух сообщений с одним и тем же ключом раздела двум разным потребителям в группе потребителей [закр
    Anonymous » » в форуме Apache
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Соединение Docker Cloud Cloud Cloud Cloud
    Anonymous » » в форуме JAVA
    0 Ответы
    53 Просмотры
    Последнее сообщение Anonymous
  • Соединение Docker Cloud Cloud Cloud Cloud
    Anonymous » » в форуме JAVA
    0 Ответы
    60 Просмотры
    Последнее сообщение Anonymous
  • Передача эмодзи в Юникоде из REST API потребителям Android и iOS.
    Anonymous » » в форуме Android
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»