您现在的位置是:亿华云 > 数据库
RabbitMQ 死信机制真的可以作为延时任务这个场景的解决方案吗?
亿华云2025-10-09 03:49:28【数据库】3人已围观
简介复制@Configuration` publicclassRabbitBindConfig{` ublicfinalstaticStringSKYPYB_O

复制@Configuration` public class RabbitBindConfig { ` ublic final static String SKYPYB_ORDINARY_EXCHANGE = "skypyb-ordinary-exchange";` ublic final static String SKYPYB_DEAD_EXCHANGE = "skypyb-dead-exchange";` ublic final static String SKYPYB_ORDINARY_QUEUE_1 = "skypyb-ordinary-queue";` public final static String SKYPYB_DEAD_QUEUE = "skypyb-dead-queue";` public final static String SKYPYB_ORDINARY_KEY = "skypyb.key.ordinary.one";` public final static String SKYPYB_DEAD_KEY = "skypyb.key.dead";` @Bean` public DirectExchange ordinaryExchange() { ` return new DirectExchange(SKYPYB_ORDINARY_EXCHANGE,死信时任 false, true);` }` @Bean` public DirectExchange deadExchange() { ` return new DirectExchange(SKYPYB_DEAD_EXCHANGE, false, true);` }` @Bean` public Queue ordinaryQueue() { ` Map arguments = new HashMap<>();` //TTL 5s` arguments.put("x-message-ttl", 1000 * 5);` // 绑定死信队列和死信交换机` arguments.put("x-dead-letter-exchange", SKYPYB_DEAD_EXCHANGE);` arguments.put("x-dead-letter-routing-key", SKYPYB_DEAD_KEY);` return new Queue(SKYPYB_ORDINARY_QUEUE_1, false, false, true, arguments);` }` @Bean` public Queue deadQueue() { ` return new Queue(SKYPYB_DEAD_QUEUE, false, false, true);` }` @Bean` public Binding bindingOrdinaryExchangeAndQueue() { ` return BindingBuilder.bind(ordinaryQueue()).to(ordinaryExchange()).with(SKYPYB_ORDINARY_KEY);` }` @Bean` public Binding bindingDeadExchangeAndQueue() { ` return BindingBuilder.bind(deadQueue()).to(deadExchange()).with(SKYPYB_DEAD_KEY);` }` }` 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.
很赞哦!(12831)