С Apache Camel я хочу отправлять на rabbitmq сообщения об обмене с различными ключами маршрутизации для балансировки нагрузки (теперь у меня есть обмен с 4 ключами маршрутизации, больше в будущем).Есть ли простой способ добавить различные заголовки (ключи маршрутизации .setHeader ("rabbitmq.ROUTING_KEY", envelope.getRoutingKey ());) к сообщениям?
ОБНОВЛЕНО:
Я решил проблему с процессорами и $ {id}:
.setHeader("id", simple("${id}"))
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
String id = exchange.getIn().getHeader("id").toString();
String newRoutingKey = ROUTING_KEY_PREFIX +
(Integer.valueOf(id.split(":")[MESSAGE_NUMBER_IND]) % ROUTING_KEYS_NUMBER);
exchange.getIn().removeHeader("id");
exchange.getIn().setHeader("rabbitmq.ROUTING_KEY", newRoutingKey);
} }).to(rmqQueue)
Есть ли скрытые проблемы?