RabbitMQ基础<一>

声明:以下都是自己的一点小想法,因技术能力有限,不对的地方或有补充的地方请留言

一. RabbitMQ声明Exchange的两种方式

1.@bean 方式
   @Bean
    public FanoutExchange declareExchange() {
        return new FanoutExchange(ExchangeName);
    }

优势:简单易写容易理解
缺点:结构不清晰。当声明的Exchange 过多时不宜管理,想要找到对应的Exchange可能要浪费半天时间,改动起来麻烦

2.实现ApplicationRunner
@Component
public class Ignition implements ApplicationRunner {

    private AmqpAdmin amqpAdmin;

    @Autowired
    public Ignition(AmqpAdmin amqpAdmin) {
        this.amqpAdmin = amqpAdmin;
    }

    @Override
    public void run(ApplicationArguments args) throws Exception {

        // 声明Exchange
        declareExchange();
    }

    /**
     * 声明Exchange
     */
    private void declareExchange() {
        TopicExchange exchange = new TopicExchange(ExchangeName, true, false);
        amqpAdmin.declareExchange(exchange);
    }

优势:结构清晰,每一个声明都能有效快速的找到。Exchange容易管理
缺点:编码比第一种大。

二. RabbitMQ发送消息

  @Autowired
   private AmqpTemplate amqpTemplate;

    // 发送
    amqpTemplate.send(ExchangeName,routingKey, new Message(message.getBytes(), new MessageProperties()));

你可能感兴趣的:(RabbitMQ基础<一>)