Переадресация сообщений rabbitmq - проблема - PullRequest
0 голосов
/ 09 мая 2018

Я использую rabbit mq 3.7.4 и имею очередь с x-max-length: 3 и x-overflow: reject-publish, я пытаюсь перенаправить те сообщения, которые приходят, когда очередь достигает своего максимального предела (т.е. от 4-го сообщения ... до сообщения) в очередь тупиковой рассылки, но не удалось достичь.

щедро помогите с тем же

Моя конфигурация:

@Configuration
@EnableAutoConfiguration
public abstract class AMQPConfig {

@Value("${overflow-queue.exchange}")
private String queueExchange;

@Value("${overflow-queue.routingkey}")
private String throttleRoutingKey;


@Value("${overflow.queue}")
private String queue;
/**
 * abstract ampqTemplate method
 */
public abstract AmqpTemplate getAmqpTemplate();

@Bean
public MessageConverter jsonMessageConverter() {
    return new Jackson2JsonMessageConverter();
}

@Bean
public TopicExchange salesExchange() {
    return new TopicExchange(queueExchange);
}

@Bean
public Queue salesQueue() {
    return //QueueBuilder.durable(throttleQueue)
            QueueBuilder.durable(queue)
            .withArgument("x-max-length", 3)
            .withArgument("x-overflow", "reject-publish")
            .withArgument("x-dead-letter-exchange",queueExchange)
            .withArgument("x-dead-letter-routing-key","deadletter-routing-key")
            .build();
}
@Bean
public Binding declareSalesQueueBinding() {
    return BindingBuilder.bind(salesQueue()).to(salesExchange()).with(queue);//with(throttleQueue);
}


@Bean
public MappingJackson2MessageConverter consumerJackson2MessageConverter() {
    return new MappingJackson2MessageConverter();
}

@Bean
public DefaultMessageHandlerMethodFactory messageHandlerMethodFactory() {
    DefaultMessageHandlerMethodFactory factory = new DefaultMessageHandlerMethodFactory();
    factory.setMessageConverter(consumerJackson2MessageConverter());
    return factory;
}

}

МОЙ ПРОИЗВОДИТЕЛЬ:

@Service
public class Producer {

private static long sentMessageCount =0L;

@Autowired
private AmqpTemplate rabbitTemplate;

@Value("${overflow.queue}")
String queueName;

@Scheduled(initialDelay = 5000, fixedRate = 10)
    public void queueSender() {
    long x=++sentMessageCount;
        rabbitTemplate.convertAndSend(queueName,"{'empId':'"+x+"','empName':'raj'}");
}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...