| | |
| | | import cc.mrbird.febs.rabbit.constants.QueueConstants; |
| | | import cc.mrbird.febs.rabbit.constants.RouteKeyConstants; |
| | | import cc.mrbird.febs.rabbit.enumerates.RabbitQueueEnum; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.amqp.core.*; |
| | | import org.springframework.amqp.rabbit.connection.ConnectionFactory; |
| | | import org.springframework.amqp.rabbit.core.RabbitTemplate; |
| | |
| | | * @author wzy |
| | | * @date 2021-09-25 |
| | | **/ |
| | | @Slf4j |
| | | @Configuration |
| | | public class RabbitConfigure { |
| | | |
| | |
| | | @Bean |
| | | @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) |
| | | public RabbitTemplate rabbitTemplate() { |
| | | return new RabbitTemplate(connectionFactory); |
| | | |
| | | RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); |
| | | // 设置消息确认机制 |
| | | rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> { |
| | | if (!ack) { |
| | | log.error("消息发送失败: {}", cause); |
| | | } |
| | | }); |
| | | return rabbitTemplate; |
| | | } |
| | | |
| | | @Bean |
| | | public DirectExchange defaultExchange() { |
| | | return new DirectExchange(ExchangeConstants.EXCHANGE_DEFAULT); |
| | | public DirectExchange pcCompanyAddExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.PC_COMPANY_ADD_ALI.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue defaultQueue() { |
| | | return new Queue(QueueConstants.QUEUE_DEFAULT); |
| | | public Queue pcCompanyAddQueue() { |
| | | return new Queue(RabbitQueueEnum.PC_COMPANY_ADD_ALI.getQueue()); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding defaultBind() { |
| | | return BindingBuilder.bind(defaultQueue()).to(defaultExchange()).with(RouteKeyConstants.ROUTE_KEY_DEFAULT); |
| | | public Binding pcCompanyAddBind() { |
| | | return BindingBuilder.bind(pcCompanyAddQueue()).to(pcCompanyAddExchange()).with(RabbitQueueEnum.PC_COMPANY_ADD_ALI.getRoute()); |
| | | } |
| | | |
| | | |
| | | |
| | | @Bean |
| | | public DirectExchange delayTtlExchangeClothes() { |
| | | return new DirectExchange(RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY_TTL.getExchange()); |
| | | } |
| | | @Bean |
| | | public Queue orderDelayQueueTtlClothes() { |
| | | return QueueBuilder.durable(RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY_TTL.getQueue()) |
| | | //到期后转发的交换机 |
| | | .withArgument("x-dead-letter-exchange", RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY.getExchange()) |
| | | //到期后转发的路由键 |
| | | .withArgument("x-dead-letter-routing-key", RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY.getRoute()) |
| | | .build(); |
| | | } |
| | | @Bean |
| | | public Binding orderDelayBindTtlClothes() { |
| | | return BindingBuilder.bind(orderDelayQueueTtlClothes()).to(delayTtlExchangeClothes()).with(RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY_TTL.getRoute()); |
| | | } |
| | | |
| | | @Bean |
| | | public DirectExchange orderDelayExchangeClothes() { |
| | | return new DirectExchange(RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY.getExchange()); |
| | | } |
| | | @Bean |
| | | public Queue orderDelayQueueClothes() { |
| | | return new Queue(RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY.getQueue()); |
| | | } |
| | | @Bean |
| | | public Binding orderDelayBindClothes() { |
| | | return BindingBuilder.bind(orderDelayQueueClothes()).to(orderDelayExchangeClothes()).with(RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY.getRoute()); |
| | | } |
| | | |
| | | |
| | | @Bean |
| | | public DirectExchange delayTtlExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public DirectExchange orderDelayExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.ORDER_CANCEL_DELAY.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue orderDelayQueue() { |
| | | return new Queue(RabbitQueueEnum.ORDER_CANCEL_DELAY.getQueue()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue orderDelayQueueTtl() { |
| | | return QueueBuilder.durable(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getQueue()) |
| | | //到期后转发的交换机 |
| | | .withArgument("x-dead-letter-exchange", RabbitQueueEnum.ORDER_CANCEL_DELAY.getExchange()) |
| | | //到期后转发的路由键 |
| | | .withArgument("x-dead-letter-routing-key", RabbitQueueEnum.ORDER_CANCEL_DELAY.getRoute()) |
| | | .build(); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding orderDelayBind() { |
| | | return BindingBuilder.bind(orderDelayQueue()).to(orderDelayExchange()).with(RabbitQueueEnum.ORDER_CANCEL_DELAY.getRoute()); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding orderDelayBindTtl() { |
| | | return BindingBuilder.bind(orderDelayQueueTtl()).to(delayTtlExchange()).with(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getRoute()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue autoLevelUpAgentQueue() { |
| | | return new Queue(QueueConstants.AGENT_AUTO_LEVEL_UP); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding autoLevelUpBind() { |
| | | return BindingBuilder.bind(autoLevelUpAgentQueue()).to(defaultExchange()).with(RouteKeyConstants.ROUTE_KEY_DEFAULT); |
| | | } |
| | | |
| | | @Bean |
| | | public DirectExchange agentReturnMoneyExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.AGENT_REUTRN_MONEY.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue agentReturnMoneyQueue() { |
| | | return new Queue(QueueConstants.AGENT_RETURN_MONEY); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding agentReturnMoneyBind() { |
| | | return BindingBuilder.bind(agentReturnMoneyQueue()).to(agentReturnMoneyExchange()).with(RabbitQueueEnum.AGENT_REUTRN_MONEY.getRoute()); |
| | | } |
| | | |
| | | |
| | | @Bean |
| | | public DirectExchange orderReturnMoneyExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.ORDER_RETURN_MONEY.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue orderReturnMoneyQueue() { |
| | | return new Queue(QueueConstants.ORDER_RETURN_MONEY); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding orderReturnMoneyBind() { |
| | | return BindingBuilder.bind(orderReturnMoneyQueue()).to(orderReturnMoneyExchange()).with(RabbitQueueEnum.ORDER_RETURN_MONEY.getRoute()); |
| | | } |
| | | |
| | | |
| | | @Bean |
| | | public DirectExchange orderCouponExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.ORDER_COUPON.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue orderCouponQueue() { |
| | | return new Queue(QueueConstants.ORDER_COUPON); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding orderCouponBind() { |
| | | return BindingBuilder.bind(orderCouponQueue()).to(orderCouponExchange()).with(RabbitQueueEnum.ORDER_COUPON.getRoute()); |
| | | } |
| | | |
| | | |
| | | @Bean |
| | | public DirectExchange getScoreMsgExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.GET_SCORE_MSG.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue getScoreMsgQueue() { |
| | | return new Queue(QueueConstants.GET_SCORE_MSG); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding getScoreMsgBind() { |
| | | return BindingBuilder.bind(getScoreMsgQueue()).to(getScoreMsgExchange()).with(RabbitQueueEnum.GET_SCORE_MSG.getRoute()); |
| | | } |
| | | |
| | | |
| | | @Bean |
| | | public DirectExchange vipLevelUp() { |
| | | return new DirectExchange(RabbitQueueEnum.VIP_LEVEL_UP.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue vipLevelUpQueue() { |
| | | return new Queue(QueueConstants.VIP_LEVEL_UP); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding vipLevelUpBind() { |
| | | return BindingBuilder.bind(vipLevelUpQueue()).to(vipLevelUp()).with(RabbitQueueEnum.VIP_LEVEL_UP.getRoute()); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Bean |
| | | public DirectExchange saleLevelUp() { |
| | | return new DirectExchange(RabbitQueueEnum.SALE_LEVEL_UP.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue saleLevelUpQueue() { |
| | | return new Queue(RabbitQueueEnum.SALE_LEVEL_UP.getQueue()); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding saleLevelUpBind() { |
| | | return BindingBuilder.bind(saleLevelUpQueue()).to(saleLevelUp()).with(RabbitQueueEnum.SALE_LEVEL_UP.getRoute()); |
| | | } |
| | | |
| | | |
| | | @Bean |
| | | public DirectExchange activityOrderCheckExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.ACTIVITY_ORDER_ITEM_CHECK.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue activityOrderCheckQueue() { |
| | | return new Queue(RabbitQueueEnum.ACTIVITY_ORDER_ITEM_CHECK.getQueue()); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding activityOrderCheckBind() { |
| | | return BindingBuilder.bind(activityOrderCheckQueue()).to(activityOrderCheckExchange()).with(RabbitQueueEnum.ACTIVITY_ORDER_ITEM_CHECK.getRoute()); |
| | | } |
| | | |
| | | |
| | | @Bean |
| | | public DirectExchange clothesAddLikeExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.CLOTHES_ADD_LIKE.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue clothesAddLikeQueue() { |
| | | return new Queue(RabbitQueueEnum.CLOTHES_ADD_LIKE.getQueue()); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding clothesAddLikeBind() { |
| | | return BindingBuilder.bind(clothesAddLikeQueue()).to(clothesAddLikeExchange()).with(RabbitQueueEnum.CLOTHES_ADD_LIKE.getRoute()); |
| | | } |
| | | |
| | | |
| | | @Bean |
| | | public DirectExchange clothesAddCollectExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.CLOTHES_ADD_COLLECT.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue clothesAddCollectQueue() { |
| | | return new Queue(RabbitQueueEnum.CLOTHES_ADD_COLLECT.getQueue()); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding clothesAddCollectBind() { |
| | | return BindingBuilder.bind(clothesAddCollectQueue()).to(clothesAddCollectExchange()).with(RabbitQueueEnum.CLOTHES_ADD_COLLECT.getRoute()); |
| | | } |
| | | |
| | | } |