rabbitmq配置topic

package com.enniu.cloud.services.zjxafter.config;

import org.springframework.amqp.core.*;
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabbitMQConfigurationProperties {

    @Bean
    public ConnectionFactory connectionFactory() {
        CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
        connectionFactory.setAddresses("127.0.0.1:5672");
        connectionFactory.setUsername("guest");
        connectionFactory.setPassword("guest");
        connectionFactory.setVirtualHost("/");
        connectionFactory.setPublisherConfirms(false); //必须要设置
        return connectionFactory;
    }

    @Bean(name = "RabbitListener")
    public SimpleRabbitListenerContainerFactory messageContainer() {
        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
        factory.setConnectionFactory(connectionFactory());
        factory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
        return factory;
    }

    @Bean(name = "Exchange")
    public TopicExchange fcLoanSysOrderExchange() {
        return new TopicExchange("Exchange");
    }

    @Bean(name = "orders")
    public Queue dtOrderLifeCycleQueue() {
        return new Queue("orders", true);
    }

    @Bean
    public Binding fcLoanSysBinding() {
        return BindingBuilder.bind(dtOrderLifeCycleQueue()).to(fcLoanSysOrderExchange())
                .with("order.*");
    }
}

@Component
@Slf4j
public class RabbitMqListener{


    @RabbitListener(queues = "rc_aries_zjx_orders",containerFactory = "fcLoanSysRabbitListener")
    public void onMessage(@Payload byte[] data,
                          @Header(AmqpHeaders.CHANNEL) Channel channel,
                          @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) throws IOException {
        val message = data == null || data.length == 0 ? "" : new String(data, StandardCharsets.UTF_8);
        //业务逻辑   
      channel.basicAck(deliveryTag, false); //消息处理成功,回复确认
    channel.basicReject(deliveryTag, true); //消息处理失败,回复确认
     }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值